**************************************************************************************
	;Header frs File-linken

	IFD	Flag_project
Flag_natene	set 1
	ENDC
	IFND	Flag_natene
Flag_natene	set 0
	ENDC
	IFEQ	Flag_natene
Flag_natene	set 1
	include	Nutz_project
	ELSEIF
**************************************************************************************
	include	Binary/Nature/Nature_ene.src

NBush_Obj0	EQU	Nature_Obj_0	;Bush
NBush_Obj1	EQU	Nature_Obj_1	;Augen ffnen
NBush_Obj2	EQU	Nature_Obj_2	;  "     "
NBush_Obj3	EQU	Nature_Obj_3	;  "     "
NBush_Obj4	EQU	Nature_Obj_4	;  "     "
NBush_Obj5	EQU	Nature_Obj_5	;  "     "
NBush_Obj6	EQU	Nature_Obj_3	;Augen hin & herschauen
NBush_Obj7	EQU	Nature_Obj_6	;  "    "  "      "
NBush_Obj8	EQU	Nature_Obj_7	;  "    "  "      "

NPilz_Obj0	EQU	Nature_Obj_8	;Kopf grn
NPilz_Obj1	EQU	Nature_Obj_9	;Kopf rot
NPilz_Obj2	EQU	Nature_Obj_10	;Kopf blau
NPilz_Obj3	EQU	Nature_Obj_11	;Stiel
NPilz_Obj4	EQU	Nature_Obj_12	;  "
NPilz_Obj5	EQU	Nature_Obj_13	;  "
NPilz_Obj6	EQU	Nature_Obj_14	;  "
NPilz_Obj7	EQU	Nature_Obj_15	;  "

NExtra_Obj0	EQU	Nature_Obj_16	;Extra Blatt
NExtra_Obj1	EQU	Nature_Obj_17	;Extra Lampe
NExtra_Obj1a	EQU	Nature_Obj_17a	;  "     "
NExtra_Obj2	EQU	Nature_Obj_18	;  "     "
NExtra_Obj2a	EQU	Nature_Obj_18a	;  "     "
NExtra_Obj3	EQU	Nature_Obj_19	;  "     "
NExtra_Obj4	EQU	Nature_Obj_20	;  "     "
NExtra_Obj5	EQU	Nature_Obj_21	;Extra Stiel
NExtra_Obj6	EQU	Nature_Obj_22	;Extra Blte
NExtra_Obj7	EQU	Nature_Obj_23	;  "     "
NExtra_Obj8	EQU	Nature_Obj_24	;  "     "


NLeaf_Obj0	EQU	Nature_Obj_25
NLeaf_Obj1	EQU	Nature_Obj_26

NFeather_Obj0	EQU	Nature_Obj_27
NFeather_Obj1	EQU	Nature_Obj_28

NStone_Obj0	EQU	Nature_Obj_29
NStone_Obj1	EQU	Nature_Obj_30

NBee_Obj0	EQU	Nature_Obj_31
NBee_Obj1	EQU	Nature_Obj_32

NChick_Obj0	EQU	Nature_Obj_34	;LaufAnim
NChick_Obj1	EQU	Nature_Obj_36	;    "
NChick_Obj2	EQU	Nature_Obj_38a	;    "
NChick_Obj3	EQU	Nature_Obj_39	;    "
NChick_Obj4	EQU	Nature_Obj_41	;    "
NChick_Obj5	EQU	Nature_Obj_43	;    "
NChick_Obj6	EQU	Nature_Obj_45	;    "
NChick_Obj7	EQU	Nature_Obj_47	;    "
NChick_Obj8	EQU	Nature_Obj_49	;    "
NChick_Obj9	EQU	Nature_Obj_51a	;    "
NChick_Obj10	EQU	Nature_Obj_52	;    "
NChick_Obj11	EQU	Nature_Obj_54	;    "
NChick_Obj12	EQU	Nature_Obj_56	;    "
NChick_Obj13	EQU	Nature_Obj_58	;    "

NChick_Obj14	EQU	Nature_Obj_60	;Ei
NChick_Obj15	EQU	Nature_Obj_61	;Platt 1
NChick_Obj16	EQU	Nature_Obj_62	;Platt 2

NChick_Obj17	EQU	Nature_Obj_64	;Flughuhn
NChick_Obj18	EQU	Nature_Obj_65	;    "

NChick_Obj19	EQU	Nature_Obj_63	;Attackhuhn
NChick_Obj20	EQU	Nature_Obj_63a	;    "

NFeet_Obj0	EQU	Nature_Obj_35
NFeet_Obj1	EQU	Nature_Obj_37
NFeet_Obj2	EQU	Nature_Obj_38
NFeet_Obj3	EQU	Nature_Obj_40
NFeet_Obj4	EQU	Nature_Obj_42
NFeet_Obj5	EQU	Nature_Obj_44
NFeet_Obj6	EQU	Nature_Obj_46
NFeet_Obj7	EQU	Nature_Obj_48
NFeet_Obj8	EQU	Nature_Obj_50
NFeet_Obj9	EQU	Nature_Obj_51
NFeet_Obj10	EQU	Nature_Obj_53
NFeet_Obj11	EQU	Nature_Obj_55
NFeet_Obj12	EQU	Nature_Obj_57
NFeet_Obj13	EQU	Nature_Obj_59

NPlatform_Obj0	EQU	Nature_Obj_66
**************************************************************************************
SN_HUHN		=064	*
SN_HUHN_LEFT	=065	*
SN_HUHN_ATTACK	=066	*
SN_HUHN_ATTACK_LEFT	=067	*
SN_HUHN_STONE	=068	*
SN_HUHN_STONE_LEFT	=069	*
SN_HUHN_BUSH	=070
SN_HUHN_BUSH_BODY	=071	*
SN_HUHN_BUSH_EYES	=072	*
*-----------------------
SN_BIENE		=073	*
SN_BIENE_LEFT	=074	*
*-----------------------
SN_STONE		=075	*
*-----------------------
SN_BUMPER_BROWN	=076	*
SN_BUMPER_GREEN	=077	*
SN_BUMPER_RED	=078	*
SN_BUMPER_BODY	=079	*
SN_BUMPER_BODY_JUMP	=080	*
*-----------
SN_MOV_X_WAIT	=081	*
SN_MOV_X_MOVE	=082	*
SN_MOV_Y_WAIT	=083	*
SN_MOV_Y_MOVE	=084	*
SN_MOV_KREIS	=085	*
SN_MOV_W_WAIT	=086	*
SN_MOV_W_MOVE	=087	*
SN_MOV_W_NOTHING	=088	*
*-----------
SN_EF_W_DOWN	=089	*
SN_EF_W_UP		=090	*
SN_WATER_COME	=091	*
SN_EI		=092	*
NH_HUHN_FEDER	=093	*
NH_HUHN_BLATT	=094	*
**************************************************************************************
**************************************************************************************
*-------------------------------------------------------------------------------------
*------------	SHOW OBJECTS
*-------------------------------------------------------------------------------------
Show_NaturObject:	*--*>Show it
		move.w	#Nature_EnemyVRam/32,d3
		move.l	Bob_SigelInfo(a4),a0
		move.w	Bob_FlipStatus(a4),d2
		jsr	Show_Simple_Object
		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*--------------	MOVER DINGENS
*-------------------------------------------------------------------------------------
NMover_AnimTable:	dc.w	0
		dc.l	NPlatform_Obj0,0
		dc.w	ENTRY_END
		dc.l	NMover_AnimTable
*-------------------------------------------------------------------------------------
Mover_NGlobal:	*--*>Global Routs for Mover
		jsr	Test_Bob_Out
		*--*>Make Movement
		move.l	Mover_Move_Routine(a4),a0
		jsr	(a0)
		*--*>Test Temet on Top
		jsr	Test_TEMET_On_Top
		*--*>ENDE
		jsr	Show_NaturObject
		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*--------------	STONE
*-------------------------------------------------------------------------------------
**************************************************************************************
NH_HUSTONE_I_R:	*--*>First Init Huhn
		move.l	a4,a5
		move	#SN_HUHN,d0
		move	Bob_X_Position(a4),d1
		move	Bob_Y_Position(a4),d2
 		move.l	Bob_Entry_Adress(a4),a1
		jsr	Search_Bob_Entry
		*--*>Init Stone
		move.l	a5,a4
		jsr	Search_Stone_Entry
		tst	d7
		bmi.s	.EndeStone
		jsr	Init_Stone_VValsN
		move.l	Act_Stone_Tab(a4),a2
		move	#$0100,TEMET_Speed_X(a2)
		move.l	#Stone_Move_Dir,Bob_Routine(a4)
		and	#$fff0,Bob_Y_Position(a4)
		add	#16,Bob_Y_Position(a4)
		add	#32,Bob_X_Position(a4)
		move.l	#Area_Enter_Vector+WorkRam,Bob_Entry_Adress(a4)
.EndeStone		*--*>
		rts
*-------------------------------------------------------------------------------------
NH_HUSTONE_I_L:	*--*>First Init Huhn
		move.l	a4,a5
		move	#SN_HUHN_LEFT,d0
		move	Bob_X_Position(a4),d1
		add	#16,d1
		move	Bob_Y_Position(a4),d2
 		move.l	Bob_Entry_Adress(a4),a1
		jsr	Search_Bob_Entry
		*--*>Init Stone
		move.l	a5,a4
		jsr	Search_Stone_Entry	
		tst	d7
		bmi.s	.EndeStone
		jsr	Init_Stone_VValsN
		move.l	Act_Stone_Tab(a4),a2
		move	#$ff00,TEMET_Speed_X(a2)
		move.l	#Stone_Move_Dir,Bob_Routine(a4)
		and	#$fff0,Bob_Y_Position(a4)
		add	#16,Bob_Y_Position(a4)
		sub	#16,Bob_X_Position(a4)
		move.l	#Area_Enter_Vector+WorkRam,Bob_Entry_Adress(a4)
.EndeStone		rts
*-------------------------------------------------------------------------------------
STONE_Rout1_InitN	*--*>Init Stone Alone
		jsr	Search_Stone_Entry
		move.l	#STONE_Speed,Bob_Routine(a4)
		jsr	Init_Stone_VValsN
		rts
*-------------------------------------------------------------------------------------
Init_Stone_VValsN	*--*>Init Stone Various Vals
		move.l	#Show_NaturObject,Stone_Show_Rout(a4)
		move.l	#NSTONE_Wait_Anm,Stone_Wait_Anm(a4)
		move.l	#NSTONE_Left_Anm,Stone_Left_Anm(a4)
		move.l	#NSTONE_Right_Anm,Stone_Right_Anm(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NSTONE_Wait_Anm:	dc.w	0
		dc.l	NStone_Obj0,0
		dc.w	ENTRY_END
		dc.l	NSTONE_Wait_Anm
NSTONE_Left_Anm:	dc.w	0
		dc.l	NStone_Obj0,0
		dc.w	0
		dc.l	NStone_Obj1,0
		dc.w	1
		dc.l	NStone_Obj0,0
		dc.w	1
		dc.l	NStone_Obj1,0
		dc.w	ENTRY_END
		dc.l	NSTONE_Left_Anm
NSTONE_Right_Anm:	dc.w	1
		dc.l	NStone_Obj1,0
		dc.w	1
		dc.l	NStone_Obj0,0
		dc.w	0
		dc.l	NStone_Obj1,0
		dc.w	0
		dc.l	NStone_Obj0,0
		dc.w	ENTRY_END
		dc.l	NSTONE_Right_Anm
**************************************************************************************
*-------------------------------------------------------------------------------------
*-----------------	BIENE
*---------------------------------------------------------------------------
Biene_Fly_Left_Anm:	dc.w	0
		dc.l	NBee_Obj0,0
		dc.w	0
		dc.l	NBee_Obj1,0
		dc.w	ENTRY_END
		dc.l	Biene_Fly_Left_Anm
Biene_Fly_Right_Anm:	dc.w	1
		dc.l	NBee_Obj0,0
		dc.w	1
		dc.l	NBee_Obj1,0
		dc.w	ENTRY_END
		dc.l	Biene_Fly_Right_Anm
Biene_UC_Left_Anm:	dc.w	0
		dc.l	NBee_Obj0
		dc.w	0,-3
		dc.w	ENTRY_END
		dc.l	Biene_UC_Left_Anm
Biene_UC_Right_Anm:	dc.w	1
		dc.l	NBee_Obj0
		dc.w	0,-3
		dc.w	ENTRY_END
		dc.l	Biene_UC_Right_Anm
*---------------------------------------------------------------------------
Biene_Attack_Flag	=Bob_Special_1	;B
Biene_X_Dir		=Bob_Special_1+1	;B
Biene_X_Range	=Bob_Special_2	;W
Biene_Y_Speed	=Bob_Special_3	;W
Biene_Y_Acce	=Bob_Special_4	;W
Biene_Which_Rout	=Bob_Koords_Save1	;W
Biene_Wait_Time	=Bob_Koords_Save1+2	;W
Biene_Y_Schwank	=Bob_Koords_Save2	;W
Biene_X_Speed	=Bob_Koords_Save2+2	;W
Biene_Hit		=Bob_Hit		;B
*---------------------------------------------------------------------------
Init_Biene_Left:	*--*>Init Values for Flyer
		move.b	#-1,Biene_X_Dir(a4)
		bra.s	Biene_GlobalI
Init_Biene_Right:	*--*>Init Values for Flyer
		move.b	#1,Biene_X_Dir(a4)
Biene_GlobalI:	move.l	#Biene_Main_Rout,Bob_Routine(a4)
		move	#NB_NORMAL_ROUT,Biene_Which_Rout(a4)
		move	#2,Biene_X_Speed(a4)
		move.w	#270,Bob_Out_X_Val(a4)
		move.w	#200+32,Bob_Out_Y_Val(a4)
		rts
*---------------------------------------------------------------------------
NB_NORMAL_ROUT	=0
NB_NORMAL_HIT	=1
NB_FALL_DOWN	=2
NB_FLY_HIT		=3
NB_ATTACK_ROUT	=4
*---------------------------------------------------------------------------
Biene_Main_Rout:	*--*>StandartRouts
		jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		jsr	Show_NaturObject
		move	#NORMAL,Bob_Race(a4)
		*--*>Test which Routs
		cmp	#NB_NORMAL_ROUT,Biene_Which_Rout(a4)
		beq.s	.NB_NORMAL_ROUTs
		cmp	#NB_NORMAL_HIT,Biene_Which_Rout(a4)
		beq	.NB_NORMAL_HITs
		cmp	#NB_FALL_DOWN,Biene_Which_Rout(a4)
		beq	.Fall_Routs
		cmp	#NB_FLY_HIT,Biene_Which_Rout(a4)
		beq	.NB_FLY_HIT
		cmp	#NB_ATTACK_ROUT,Biene_Which_Rout(a4)
		beq.s	.NB_ATTACK_ROUTs
		rts
*-------------------------------------------------------------------------------------
*-----------	BIENE CALL ROUTS DEPENDING ON MODE
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.NB_NORMAL_ROUTs	*--*>Test if Timet Hits Biene
		jsr	.Test_TEMET_Hit_Bob
		jsr	.Biene_Y_Schwank
		jsr	Test_Bee_Hit_TEMET
		*--*>Test if wait
		tst	Biene_Wait_Time(a4)
		beq.s	.NRouts
		*--*>Wait Time
		subq	#1,Biene_Wait_Time(a4)
		rts
.NRouts		*--*>Call Dir Routs
		jsr	.Test_TEMET_InRange
		jsr	.Make_X_Speed
		jsr	.Test_X_Kollision
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.NB_ATTACK_ROUTs	*--*>Test if Timet Hits Biene
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_Bee_Hit_TEMET
		*--*>Test if wait
		tst	Biene_Wait_Time(a4)
		beq.s	.NRouts4
		*--*>Wait Time
		subq	#1,Biene_Wait_Time(a4)
		tst	Biene_Wait_Time(a4)
		bne.s	.Ende
		*--*>Init New Anim
		move	#$0400,Biene_Y_Speed(a4)
		IFEQ	SOUNDFX
		moveq	#2,d0
		jsr	TFMX+16
		ENDC
.Ende		rts
.NRouts4		*--*>Call Dir Routs
		jsr	.Make_X_Speed
		jsr	.Make_Y_Speed
		jsr	.Test_X_Koll_Dam
		jsr	.Test_Y_Koll_Dam
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.NB_NORMAL_HITs	*--*>Test if Timet Hits Biene
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_Bee_Hit_TEMET
		jsr	.Biene_Y_Bump
		jsr	.Test_Y_Koll_Dam
		*--*>Test if wait
		tst	Biene_Wait_Time(a4)
		beq.s	.NRouts1
		*--*>Wait Time
		subq	#1,Biene_Wait_Time(a4)
		rts
.NRouts1		*--*>Call Dir Routs
		jsr	.Make_X_Speed
		jsr	.Test_X_Kollision
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.NB_FLY_HIT		*--*>Test if Timet Hits Biene
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_Bee_Hit_TEMET
		jsr	.Schwank_Y_Hit
		jsr	.Biene_Y_Schwank
		*--*>Test if wait
		tst	Biene_Wait_Time(a4)
		beq.s	.NRouts2
		*--*>Wait Time
		subq	#1,Biene_Wait_Time(a4)
		rts
.NRouts2		*--*>Call Dir Routs
		jsr	.Make_X_Speed
		jsr	.Test_X_Kollision
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Fall_Routs		*--*>Test_DownKollision
		add	#$0020,Biene_Y_Speed(a4)
		move.b	Biene_Y_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
.Test_Y_Koll_Dam	move	Bob_X_Position(a4),d0
		add	#24,d0
		move	Bob_Y_Position(a4),d1
		add	#35,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		bne.s	.No_Down_Kollide
		*--*>DAMAGE BOB
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_X_Offs
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_Y_Offs
		jsr	Out_Bob_Damage
		IFEQ	SOUNDFX
		moveq	#3,d0
		jsr	TFMX+16
		ENDC
.No_Down_Kollide	rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
**************************************************************************************
.Schwank_Y_Hit	*--*>Y Speed Make
		tst	Biene_Y_Acce(a4)
		bpl.s	.Acce_Down
.Acce_Up		*--Test if Acce should be down
		move.b	Biene_Y_Speed(a4),d0
		neg.b	d0
		cmp.b	#2,d0
		bne.s	.Add_Acce_Speed
		neg	Biene_Y_Acce(a4)	
		bra.s	.Add_Acce_Speed
.Acce_Down		*--Test if Acce should be up
		move.b	Biene_Y_Speed(a4),d0
		cmp.b	#2,d0
		bne.s	.Add_Acce_Speed
		neg	Biene_Y_Acce(a4)
		;bra.s	.Add_Acce_Speed
.Add_Acce_Speed	*--Add Acce to Speed
		move	Biene_Y_Acce(a4),d0
		add	d0,Biene_Y_Speed(a4)
		*--Add Speed to Pos
		move.b	Biene_Y_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Biene_Y_Bump	*--*>Make Y BUMP
		move.b	Biene_Y_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		sub	#$0020,Biene_Y_Speed(a4)
		cmp.b	#$fe,Biene_Y_Speed(a4)
		bne.s	.NoEnd
		*--*>End this shit
		move	#NB_FLY_HIT,Biene_Which_Rout(a4)
		clr.w	Biene_Y_Schwank(a4)
		move	#$0010,Biene_Y_Acce(a4)
.NoEnd		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Biene_Y_Schwank	*--*>Make Y Schank
		lea	.BieneSchwankTab,a0
		add	Biene_Y_Schwank(a4),a0
		cmp.b	#-2,(a0)
		bne.s	.okTab
		clr.w	Biene_Y_Schwank(a4)
		lea	.BieneSchwankTab,a0
.okTab		move.b	(a0),d0
		addq	#1,Biene_Y_Schwank(a4)
		ext.w	d0
		add	d0,Bob_Y_Offset(a4)
		rts
.BieneSchwankTab	dc.b	-1,0,0,0,-1,0,0,0,0,-1,0,0,0,0,0,0,+1,0,0,0,0,+1,0,0,0,+1
		dc.b	0,0,0,+1,0,0,0,0,+1,0,0,0,0,0,0,-1,0,0,0,0,-1,0,0,0
		dc.b	-2
		even
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Make_X_Speed	*--*>X Speed Make
		tst.b	Biene_X_Dir(a4)
		bpl.s	.Move_Right
.Move_Left		*--Test if Flyer scholud move Right
		tst	Biene_X_Range(a4)
		bpl.s	.Move_X
		move	Biene_X_Range(a4),d0
		neg	d0
		cmp	#200,d0
		blo.s	.Move_X
		neg.b	Biene_X_Dir(a4)
		move.l	#Biene_Fly_Right_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		move	#50,Biene_Wait_Time(a4)
		bra.s	.Move_X
.Move_Right		*--Test if Flyer scholud move Left
		tst	Biene_X_Range(a4)
		bmi.s	.Move_X
		move	Biene_X_Range(a4),d0
		cmp	#200,d0
		blo.s	.Move_X
		neg.b	Biene_X_Dir(a4)
		move.l	#Biene_Fly_Left_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		move	#50,Biene_Wait_Time(a4)
		;bra.s	.Move_X
.Move_X		*--Move Flyer in X Direction
		move.b	Biene_X_Dir(a4),d0
		ext.w	d0
		move	Biene_X_Speed(a4),d1
		asl	d1,d0
		add	d0,Bob_X_Position(a4)
	;cmp	#NB_ATTACK_ROUT,Biene_Which_Rout(a4)
	;beq.s	.NoRangeChange
		add	d0,Biene_X_Range(a4)
.NoRangeChange	rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Make_Y_Speed	*--*>Y Speed Make
		move.b	Biene_Y_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		sub	#$0018,Biene_Y_Speed(a4)
		cmp	#$0100,Biene_Y_Speed(a4)
		bhi.s	.NoGeradeFly
		tst.b	Biene_X_Dir(a4)
		bpl.s	.Init_Right_Fly
.Init_Leftt_Fly	*--*>Init Left Fly Anim
		move.l	#Biene_Fly_Left_Anm,Bob_Next_Anim(a4)
		bra.s	.NoGeradeFly
.Init_Right_Fly	*--*>Init Right Fly Anim
		move.l	#Biene_Fly_Right_Anm,Bob_Next_Anim(a4)
.NoGeradeFly	*--*>Test if Attack_Off
		tst	Biene_Y_Speed(a4)
		bpl.s	.Endeit
		*--*>Attack Off
		move	#NB_NORMAL_ROUT,Biene_Which_Rout(a4)
.Endeit		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_X_Koll_Dam	*--*>Test X Kollision of Flyer
		jsr	.Test_X_Kollision
		tst	d7
		beq.s	.NoKollDam
		*--*>DAM
		move	#NB_FALL_DOWN,Biene_Which_Rout(a4)
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_X_Offs
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_Y_Offs
		IFEQ	SOUNDFX
		moveq	#10,d0
		jsr	TFMX+16
		ENDC
		tst.b	Biene_X_Dir(a4)
		bpl.s	.Init_Right_X_KollD
.Init_Left_X_KollD	move.l	#Biene_UC_Left_Anm,Bob_Next_Anim(a4)
		rts
.Init_Right_X_KollD	move.l	#Biene_UC_Right_Anm,Bob_Next_Anim(a4)
.NoKollDam		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_X_Kollision	*--*>Test X Kollision of Flyer
		moveq	#0,d7
		move	Bob_X_Position(a4),d0
		add	Bob_X_Offset(a4),d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		add	#14,d1
		tst.b	Biene_X_Dir(a4)
		bmi.s	.Test_Left_X_Koll
		add	#48,d0
.Test_Left_X_Koll	jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.NoXKolli1
		clr.w	Bob_Anim_Delay(a4)
		move	#50,Biene_Wait_Time(a4)
		moveq	#1,d7
		neg.b	Biene_X_Dir(a4)
		bpl.s	.InitRightAnim
.InitLeftAnim	move.l	#Biene_Fly_Left_Anm,Bob_Next_Anim(a4)
		rts
.InitRightAnim	move.l	#Biene_Fly_Right_Anm,Bob_Next_Anim(a4)
.NoXKolli1		rts

*-------------------------------------------------------------------------------------
*-----------	BIENE DEAD/DAMAGE ROUTS
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_TEMET_Hit_Bob	*--*>Test if Bob should blink White
		lea	(a6),a2
		jsr	KollTopBobTest
		tst	d7
		bmi	.NoKoll
		*--Kollision ! Test if Flyer should explode
		cmp	#1,Biene_X_Speed(a4)
		beq.s	.Biene_Explode
		cmp	#FLIEGEN,TEMET_Status(a2)
		beq.s	.Biene_Explode
.Make_Bob_Hit	*--Make Bob Hit
		lea	(a6),a2
		jsr	Make_Bump
		move	#1,Biene_X_Speed(a4)
		move.b	#12,Biene_Hit(a4)
		move	#NB_NORMAL_HIT,Biene_Which_Rout(a4)
		move	#1,Bob_Anim_Delay(a4)
		move	#1,Bob_Anim_Delay_Init(a4)
		move	#$0300,Biene_Y_Speed(a4)
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_Y_Offs
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
		tst.b	Biene_X_Dir(a4)
		bpl.s	.Init_Right_FlyH
.Init_Leftt_FlyH	*--*>Init Left Fly Anim
		move.l	#Biene_Fly_Left_Anm,Bob_Next_Anim(a4)
		rts
.Init_Right_FlyH	*--*>Init Right Fly Anim
		move.l	#Biene_Fly_Right_Anm,Bob_Next_Anim(a4)
		rts
.Biene_Explode	*--Biene Explode
		lea	(a6),a2
		jsr	Make_Bump
		move	#NB_FALL_DOWN,Biene_Which_Rout(a4)
		move	#$0100,Biene_Y_Speed(a4)
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_X_Offs
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_Y_Offs
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
.NoKoll		*--keine Kollision
		rts
**************************************************************************************
.Test_TEMET_InRange	*--*> Test if TEMET is in Range
		*--Get Values
		lea	(a6),a2
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		add	#16,d0
		*--Sub Bob Values
		sub	Bob_X_Position(a4),d0
		sub	#24,d0
		sub	Bob_Y_Position(a4),d1
		*--Test if Bob-YDir is down
		bmi.s	.No_Temet_Trace
		cmp	#48,d1
		blo.s	.No_Temet_Trace
		cmp	#112,d1
		bhs.s	.No_Temet_Trace
		*--Test if Direction is Ok
		tst	d0
		bpl.s	.Biene_Left
.Biene_Right	*--Biene is Right
		tst.b	Biene_X_Dir(a4)
		bpl.s	.No_Temet_Trace
		neg	d0
		cmp	#60,d0
		bls.s	.No_Temet_Trace
		cmp	#120,d0
		bhs.s	.No_Temet_Trace
		bra.s	.TEMET_Trace
.Biene_Left	*--Biene is Left
		tst.b	Biene_X_Dir(a4)
		bmi.s	.No_Temet_Trace
		cmp	#60,d0
		bls.s	.No_Temet_Trace
		cmp	#120,d0
		bhs.s	.No_Temet_Trace
.TEMET_Trace	*--INIT Beschl down
		move	#NB_ATTACK_ROUT,Biene_Which_Rout(a4)
		move	#25,Biene_Wait_Time(a4)
.No_Temet_Trace	rts

*-------------------------------------------------------------------------------------
Test_Bee_Hit_TEMET
		tst.b	Glo_Spur(a6)
		bne.s	.OtherTest
		add	#16,Bob_Y_Position(a4)
		jsr	Test_TEMET_Hit
		sub	#16,Bob_Y_Position(a4)
		rts
.OtherTest	jsr	Test_TEMET_Hit
		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*---------------	BUMPER
*-------------------------------------------------------------------------------------
Init_Bumper_Red:	move.b	#-8,Bumper_Bump_Speed(a4)
		move.b	#13,Bumper_Bump_Time(a4)
		and	#$fff0,Bob_X_Position(a4)
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Bumper_Rout_Gl,Bob_Routine(a4)
		move.l	#Show_Bumper_Red,GBumper_Show_Rout(a4)
		move.l	#NBumper_Work_Anm,GBumper_Work_Anim(a4)
		rts
Init_Bumper_Brown:	move.b	#-6,Bumper_Bump_Speed(a4)
		move.b	#10,Bumper_Bump_Time(a4)
		and	#$fff0,Bob_X_Position(a4)
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Bumper_Rout_Gl,Bob_Routine(a4)
		move.l	#Show_Bumper_Brown,GBumper_Show_Rout(a4)
		move.l	#NBumper_Work_Anm,GBumper_Work_Anim(a4)
		rts
Init_Bumper_Green:	move.b	#-8,Bumper_Bump_Speed(a4)
		move.b	#11,Bumper_Bump_Time(a4)
		and	#$fff0,Bob_X_Position(a4)
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Bumper_Rout_Gl,Bob_Routine(a4)
		move.l	#Show_Bumper_Green,GBumper_Show_Rout(a4)
		move.l	#NBumper_Work_Anm,GBumper_Work_Anim(a4)
		rts
*-------------------------------------------------------------------------------------
Show_Bumper_Brown:	*--*>Display Pilz
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		sub	#16,d1
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplay
		move.w	#Nature_EnemyVRam/32,d3
		lea	NPilz_Obj2,a0
		jsr	Add_Simple_Sigel
.NoDisplay		jsr	Show_NaturObject
		rts
*-------------------------------------------------------------------------------------
Show_Bumper_Green:	*--*>Display Pilz
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		sub	#16,d1
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplay
		move.w	#Nature_EnemyVRam/32,d3
		lea	NPilz_Obj0,a0
		jsr	Add_Simple_Sigel
.NoDisplay		jsr	Show_NaturObject
		rts
*-------------------------------------------------------------------------------------
Show_Bumper_Red:	*--*>Display Pilz
		jsr	Bumper_Test_Jump
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		sub	#16,d1
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplay
		move.w	#Nature_EnemyVRam/32,d3
		lea	NPilz_Obj1,a0
		jsr	Add_Simple_Sigel
.NoDisplay		jsr	Show_NaturObject
		rts
*-------------------------------------------------------------------------------------
Bumper_Jump_Anim	=Bob_Koords_Save2	;LW
Bumper_Jump_Dir	=Bob_Hit		;B
*---------------------------------------------------------------------------
Bumper_Test_Jump	*--*>test if Bumper is Jumping
		tst.b	Bumper_Jump_Dir(a4)
		beq.s	.Test_if_Jump
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
		*--*>Continue Jump
		move.l	Bumper_Jump_Anim(a4),a0
		cmp.l	#$12345678,(a0)
		bne.s	.ContJump
		clr.b	Bumper_Jump_Dir(a4)
		rts
.ContJump		move	(a0)+,d0
		tst.b	Bumper_Jump_Dir(a4)
		bmi.s	.OK
		neg	d0
.OK		add	d0,Bob_X_Position(a4)
		move	(a0)+,d0
		add	d0,Bob_Y_Position(a4)
		move.l	(a0)+,Bob_Next_Anim(a4)
		jsr	Get_Next_Bob_Frame
		move.l	a0,Bumper_Jump_Anim(a4)
		bra	.NoJump
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_if_Jump	*--*>Test if TIMEt is in Range
		lea	(a6),a2
		move	TEMET_Y_Position(a2),d0
		add	#16,d0
		sub	Bob_Y_Position(a4),d0
		bpl.s	.OkYPos
		neg	d0
.OkYPos		cmp	#100,d0
		bhs	.NoJump
		move	TEMET_X_Position(a2),d0
		sub	Bob_X_Position(a4),d0
		bmi.s	.Bumper_Right
.Bumper_Left	*--*> Bumper is LEft
		cmp	#80,d0
		bhs	.NoJump
		*--*>Test if Left is Ground
		move	Bob_X_Position(a4),d0
		subq	#2,d0
		move	Bob_Y_Position(a4),d1
		add	#32+8,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		bne.s	.Jump_Right
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.Jump_Right
.Jump_Left		*--*>Init Jump Left
		move.b	#-1,Bumper_Jump_Dir(a4)
		move.l	#Bumper_Jump_Tab,Bumper_Jump_Anim(a4)
		bra.s	.NoJump
.Bumper_Right	*--*>Bumper is Right
		neg	d0
		cmp	#80,d0
		bhs.s	.NoJump
		*--*>Test if Right is Ground
		move	Bob_X_Position(a4),d0
		add	#32,d0
		move	Bob_Y_Position(a4),d1
		add	#32+8,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		bne.s	.Jump_Left
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.Jump_Left
.Jump_Right		*--*>Init Jump Right
		move.b	#1,Bumper_Jump_Dir(a4)
		move.l	#Bumper_Jump_Tab,Bumper_Jump_Anim(a4)
.NoJump		*--*>kein Jump mglich oder kein Jump ntig
		rts
*---------------------------------------------------------------------------
Bumper_Jump_Tab	*--*>Jump 16 nach links
		dc.w	0,0
		dc.l	Pilz_Body2_Anim
		*------------------------
		dc.w	0,0
		dc.l	Pilz_Body3_Anim
		*------------------------
		dc.w	0,0
		dc.l	Pilz_Body4_Anim
		*------------------------
		dc.w	-1,-2
		dc.l	Pilz_Body3_Anim
		*------------------------
		dc.w	-1,-2
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,-2
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,-1
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,-2
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,-1
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,-0
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,+0
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,+1
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,+2
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,+1
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,+2
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,+2
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,+2
		dc.l	Pilz_Body1_Anim
		*------------------------
		dc.w	-1,0
		dc.l	Pilz_Body3_Anim
		*------------------------
		dc.w	-1,0
		dc.l	Pilz_Body1_Anim
		*------------------------		
		dc.l	$12345678
**************************************************************************************
Pilz_Body1_Anim:	dc.w	0
		dc.l	NPilz_Obj3,24
		dc.w	ENTRY_END
		dc.l	Pilz_Body1_Anim
Pilz_Body2_Anim:	dc.w	0
		dc.l	NPilz_Obj4,25
		dc.w	ENTRY_END
		dc.l	Pilz_Body2_Anim
Pilz_Body3_Anim:	dc.w	0
		dc.l	NPilz_Obj5,26
		dc.w	ENTRY_END
		dc.l	Pilz_Body3_Anim
Pilz_Body4_Anim:	dc.w	0
		dc.l	NPilz_Obj6,27
		dc.w	ENTRY_END
		dc.l	Pilz_Body4_Anim
Pilz_Body5_Anim:	dc.w	0
		dc.l	NPilz_Obj7,28
		dc.w	ENTRY_END
		dc.l	Pilz_Body5_Anim
*-------------------------------------------------------------------------------------
NBumper_Wait_Anm:	dc.w	0
		dc.l	NPilz_Obj3,24
		dc.w	ENTRY_END
		dc.l	NBumper_Wait_Anm
NBumper_Work_Anm:	dc.w	0
		dc.l	NPilz_Obj3,24
		dc.w	0
		dc.l	NPilz_Obj4,25
		dc.w	0
		dc.l	NPilz_Obj5,26
		dc.w	0
		dc.l	NPilz_Obj6,27
		dc.w	0
		dc.l	NPilz_Obj7,28
		dc.w	0
		dc.l	NPilz_Obj7,28
		dc.w	0
		dc.l	NPilz_Obj6,27
		dc.w	0
		dc.l	NPilz_Obj4,26
		dc.w	ENTRY_END
		dc.l	NBumper_Wait_Anm
**************************************************************************************
*-------------------------------------------------------------------------------------
*-----------------	EI
*-------------------------------------------------------------------------------------
**************************************************************************************
Ei_X_Dir		=Bob_Special_1	;B
NH_Huhn_Hit		=Bob_Hit	;W

ANIM_NORM		=2
*---------------------------------------------------------------------------
Ei_Fly		*--*>Routine, die Ei bewegt
		jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		jsr	.Move_Ei
		jsr	Test_TEMET_Hit
		jsr	Show_NaturObject
		jsr	.Test_Ei_Koll
		jsr	.Test_Ei_Hit_Huhn
		rts
*---------------------------------------------------------------------------
.Test_Ei_Hit_Huhn	*---*>Checken ob Ei hit Hun /get Bob Base
		lea	Bob_Structure(a6),a0
		*--*>Eintrag benutzt
.Check_Loop		tst.b	Bob_Used(a0)
		bmi.s	.Next_Bob
		*--*>Bob berprfen ?
		move	Bob_Number(a0),d0
		cmp	#64,d0
		blo.s	.Next_Bob
		cmp	#SN_HUHN_BUSH,d0
		bls.s	.CheckThis
.Next_Bob		*--Do next Bob
		add	#BOB_ENTRY_LENGTH,a0
		cmp.l	#Bob_Structure_End,a0
		blo	.Check_Loop
		rts
.CheckThis		*--*>Testen ob Bob should be Hit
		move	Bob_X_Position(a0),d0
		add	Bob_X_Offset(a0),d0
		addq	#4,d0
		sub	Bob_X_Position(a4),d0
		sub	Bob_X_Offset(a4),d0
		tst	d0
		bpl.s	.EnemyLeft
.EnemyRight		add	#24,d0
		tst	d0
		bmi	.NoKoll
		bra.s	.Test_Y
.EnemyLeft		sub	#12,d0
		tst	d0
		bpl	.NoKoll
.Test_Y		*--Test_Y
		move	Bob_Y_Position(a0),d0
		add	Bob_Y_Offset(a0),d0
		sub	Bob_Y_Position(a4),d0
		sub	Bob_Y_Offset(a4),d0
		tst	d0
		bpl.s	.EnemyUp
.EnemyDown		add	#40,d0
		tst	d0
		bmi	.NoKoll
		bra.s	.NH_Huhn_was_Hit
.EnemyUp		sub	#10,d0
		tst	d0
		bpl	.NoKoll
.NH_Huhn_was_Hit	*--*>Flag setzen
		move	#-1,NH_Huhn_Hit(a0)
.NoKoll		bra.s	.Next_Bob		
*---------------------------------------------------------------------------
.Move_Ei		*--*>Move Ei with konstant X Speed
		tst.b	Ei_X_Dir(a4)
		bpl.s	.Right_Fly
.Left_Fly		*--*>Fly left
		subq	#4,Bob_X_Position(a4)
		rts
.Right_Fly		*--*>Fly right
		addq	#4,Bob_X_Position(a4)
		rts
*---------------------------------------------------------------------------
.Test_Ei_Koll	*--*>Calculate LevelAdr
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	#8,d0
		add	#6,d1
		jsr	Get_Block_All
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		bne.s	.EiPlatz
		swap	d0
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>Boden ?
		cmp.b	#boden,Block_Through(a1)
		beq.s	.EiPlatz
		rts
.EiPlatz		*--*>EiPlatzt
		moveq	#-8,d3
		moveq	#-8,d4
		jsr	ENTER_SMOKE_Y_Offs
		jsr	Out_Bob_Damage
		IFEQ	SOUNDFX
		moveq	#10,d0
		jsr	TFMX+16
		ENDC
		rts
*-------------------------------------------------------------------------------------
Ei_Left_Anm		dc.w	1
		dc.l	NChick_Obj14,0
		dc.w	ENTRY_END
		dc.l	Ei_Left_Anm
Ei_Right_Anm	dc.w	0
		dc.l	NChick_Obj14,0
		dc.w	ENTRY_END
		dc.l	Ei_Right_Anm

**************************************************************************************
*-------------------------------------------------------------------------------------
*-----------------	HUHN-ANIMS
*-------------------------------------------------------------------------------------
**************************************************************************************
PLY1OFFS		=14
PLY2OFFS		=17
*---------------------------------------------------------------------------
NH_Huhn_PL_Anm:	dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	1
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	1
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	1
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj16,PLY2OFFS
NH_Huhn_PL_Anm_CNT:	dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj0,0
		dc.w	ENTRY_END
		dc.l	NH_Huhn_PL_Anm_CNT
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
ANH_Huhn_PL_Anm:	dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj0,0
		dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
ANH_Huhn_PL_Anm_Cnt:	dc.w	1
		dc.l	NChick_Obj0,0
		dc.w	ENTRY_END
		dc.l	ANH_Huhn_PL_Anm_Cnt
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
NH_Huhn_PR_Anm:	dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	0
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	0
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	0
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj16,PLY2OFFS
		dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj16,PLY2OFFS
NH_Huhn_PR_Anm_CNT:	dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj0,0
		dc.w	ENTRY_END
		dc.l	NH_Huhn_PR_Anm_CNT
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
ANH_Huhn_PR_Anm:	dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj0,0
		dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
ANH_Huhn_PR_Anm_Cnt:	dc.w	0
		dc.l	NChick_Obj0,0
		dc.w	ENTRY_END
		dc.l	ANH_Huhn_PR_Anm_Cnt
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
NH_Huhn_WL_Anm:	dc.w	1
		dc.l	NChick_Obj0,0
		dc.w	1
		dc.l	NChick_Obj1,1
		dc.w	1
		dc.l	NChick_Obj2,1
		dc.w	1
		dc.l	NChick_Obj3,1
		dc.w	1
		dc.l	NChick_Obj4,1
		dc.w	1
		dc.l	NChick_Obj5,0
		dc.w	1
		dc.l	NChick_Obj6,-1
		dc.w	1
		dc.l	NChick_Obj7,-1
		dc.w	1
		dc.l	NChick_Obj8,0
		dc.w	1
		dc.l	NChick_Obj9,1
		dc.w	1
		dc.l	NChick_Obj10,1
		dc.w	1
		dc.l	NChick_Obj11,1
		dc.w	1
		dc.l	NChick_Obj12,1
		dc.w	1
		dc.l	NChick_Obj13,1
		dc.w	ENTRY_END
		dc.l	NH_Huhn_WL_Anm
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
NH_Huhn_WR_Anm:	dc.w	0
		dc.l	NChick_Obj0,0
		dc.w	0
		dc.l	NChick_Obj1,1
		dc.w	0
		dc.l	NChick_Obj2,1
		dc.w	0
		dc.l	NChick_Obj3,1
		dc.w	0
		dc.l	NChick_Obj4,1
		dc.w	0
		dc.l	NChick_Obj5,0
		dc.w	0
		dc.l	NChick_Obj6,-1
		dc.w	0
		dc.l	NChick_Obj7,-1
		dc.w	0
		dc.l	NChick_Obj8,0
		dc.w	0
		dc.l	NChick_Obj9,1
		dc.w	0
		dc.l	NChick_Obj10,1
		dc.w	0
		dc.l	NChick_Obj11,1
		dc.w	0
		dc.l	NChick_Obj12,1
		dc.w	0
		dc.l	NChick_Obj13,1
		dc.w	ENTRY_END
		dc.l	NH_Huhn_WR_Anm
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
NH_Huhn_FL_Anm:	dc.w	1
		dc.l	NChick_Obj18,0
		dc.w	1
		dc.l	NChick_Obj17
		dc.w	0,-2
		dc.w	1
		dc.l	NChick_Obj17
		dc.w	0,-4
		dc.w	1
		dc.l	NChick_Obj17
		dc.w	0,-6
		dc.w	1
		dc.l	NChick_Obj17
		dc.w	0,-7
		dc.w	1
		dc.l	NChick_Obj17
		dc.w	0,-8
		dc.w	1
		dc.l	NChick_Obj17
		dc.w	0,-9
		dc.w	1
		dc.l	NChick_Obj18
		dc.w	0,-9
		dc.w	1
		dc.l	NChick_Obj18
		dc.w	0,-8
		dc.w	1
		dc.l	NChick_Obj18
		dc.w	0,-7
		dc.w	1
		dc.l	NChick_Obj18
		dc.w	0,-6
		dc.w	1
		dc.l	NChick_Obj18
		dc.w	0,-4
		dc.w	1
		dc.l	NChick_Obj18
		dc.w	0,-2
		dc.w	1
		dc.l	NChick_Obj18
		dc.w	0,-1
		dc.w	ENTRY_END
		dc.l	NH_Huhn_FL_Anm
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
NH_Huhn_FR_Anm:	dc.w	0
		dc.l	NChick_Obj18
		dc.w	0,0
		dc.w	0
		dc.l	NChick_Obj17
		dc.w	0,-2
		dc.w	0
		dc.l	NChick_Obj17
		dc.w	0,-4
		dc.w	0
		dc.l	NChick_Obj17
		dc.w	0,-6
		dc.w	0
		dc.l	NChick_Obj17
		dc.w	0,-7
		dc.w	0
		dc.l	NChick_Obj17
		dc.w	0,-8
		dc.w	0
		dc.l	NChick_Obj17
		dc.w	0,-9
		dc.w	0
		dc.l	NChick_Obj18
		dc.w	0,-9
		dc.w	0
		dc.l	NChick_Obj18
		dc.w	0,-8
		dc.w	0
		dc.l	NChick_Obj18
		dc.w	0,-7
		dc.w	0
		dc.l	NChick_Obj18
		dc.w	0,-6
		dc.w	0
		dc.l	NChick_Obj18
		dc.w	0,-4
		dc.w	0
		dc.l	NChick_Obj18
		dc.w	0,-2
		dc.w	0
		dc.l	NChick_Obj18
		dc.w	0,-1
		dc.w	ENTRY_END
		dc.l	NH_Huhn_FR_Anm
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
NH_Huhn_Try_FL_Anm:	dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
NH_Huhn_FL_Anm_CNT:	dc.w	1
		dc.l	NChick_Obj18,1
		dc.w	1
		dc.l	NChick_Obj17,0
		dc.w	ENTRY_END
		dc.l	NH_Huhn_FL_Anm_CNT
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
NH_Huhn_Try_FR_Anm:	dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
NH_Huhn_FR_Anm_CNT:	dc.w	0
		dc.l	NChick_Obj18,1
		dc.w	0
		dc.l	NChick_Obj17,0
		dc.w	ENTRY_END
		dc.l	NH_Huhn_FR_Anm_CNT
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
ANH_Huhn_Att_FL_Anm:	dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	1
		dc.l	NChick_Obj15,PLY1OFFS
ANH_Huhn_Att_L_Anm_CNT:	dc.w	1
		dc.l	NChick_Obj20,1
		dc.w	1
		dc.l	NChick_Obj19,0
		dc.w	ENTRY_END
		dc.l	ANH_Huhn_Att_L_Anm_CNT
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
ANH_Huhn_Att_FR_Anm:	dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
		dc.w	0
		dc.l	NChick_Obj15,PLY1OFFS
ANH_Huhn_Att_R_Anm_CNT:	dc.w	0
		dc.l	NChick_Obj20,1
		dc.w	0
		dc.l	NChick_Obj19,0
		dc.w	ENTRY_END
		dc.l	ANH_Huhn_Att_R_Anm_CNT
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
ANH_Huhn_L_Wait_Anm	dc.w	1
		dc.l	NChick_Obj0,0
		dc.w	1
		dc.l	NChick_Obj8,-1
		dc.w	ENTRY_END
		dc.l	ANH_Huhn_L_Wait_Anm
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
ANH_Huhn_R_Wait_Anm	dc.w	0
		dc.l	NChick_Obj0,0
		dc.w	0
		dc.l	NChick_Obj8,-1
		dc.w	ENTRY_END
		dc.l	ANH_Huhn_R_Wait_Anm

**************************************************************************************
*-------------------------------------------------------------------------------------
*-----------------	HUHN-INIT ROUTS
*-------------------------------------------------------------------------------------
**************************************************************************************
ANH_Huhn_X_Dir		=Bob_Special_1	;B
ANH_Huhn_Tab_Offs	=Bob_Special_1+1	;B
ANH_Huhn_Which_Rout	=Bob_Special_2	;B
ANH_Huhn_Sit_Down	=Bob_Special_2+1	;B
ANH_Huhn_X_Range	=Bob_Special_3	;W
ANH_Huhn_Y_Speed	=Bob_Koords_Save1	;W
ANH_Huhn_Slave_Adr	=Bob_Koords_Save2	;LW
ANH_Huhn_NoAttack	=Bob_Hit		;B
*-------------------------------------------------------------------------------------
WAIT_FOR_BUMP	=-1
A_NORMAL_HUHN	=0
A_JUMP_HUHN		=1
WAIT_SHORT		=2
*---------------------------------------------------------------------------
NH_Huhn_X_Dir		=Bob_Special_1	;B
NH_Huhn_Tab_Offs	=Bob_Special_1+1	;B
NH_Huhn_Which_Rout	=Bob_Special_2	;W
NH_Huhn_X_Speed	=Bob_Special_3	;W
NH_Huhn_X_Range	=Bob_Special_4	;W
NH_Huhn_X_Return	=Bob_Koords_Save1	;W
NH_Huhn_Y_Speed	=Bob_Koords_Save1+2	;W
NH_Huhn_Sit_Down	=Bob_Koords_Save2	;W
*---------------------------------------------------------------------------
NORMAL_HUHN		=0
TRY_FLY_HUHN	=1
FLY_HUHN		=2
LAND_HUHN		=3
FALL_HUHN		=4
PLATT_HUHN		=5
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
Init_Att_Right_Huhn:	*---*>Init Right Attack Hhner
		*--*>Try Enter second Huhn
		move	#SN_HUHN,d0
		move	Bob_X_Position(a4),d1
		add	#44-16,d1
		and	#%1111111111110000,Bob_Y_Position(a4)
		add	#48-42,Bob_Y_Position(a4)
		move	Bob_Y_Position(a4),d2
		move.l	Bob_Entry_Adress(a4),a1
		move.l	a4,a5
		jsr	Search_Bob_Entry
		tst	d0
		bmi.s	.Out_The_ATTACk
		*--*> Init Values
		move.b	#1,NH_Huhn_X_Dir(a5)
		move.b	#1,NH_Huhn_X_Dir(a4)
		move.l	#NH_Huhn_Att_Master,Bob_Routine(a5)
		move.l	#NH_Huhn_Att_Slave,Bob_Routine(a4)
		move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a4)
		move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a5)
		move.l	a4,ANH_Huhn_Slave_Adr(a5)
		move.l	a5,ANH_Huhn_Slave_Adr(a4)
		move.b	#3,ANH_Huhn_NoAttack(a4)
		move.b	#3,ANH_Huhn_NoAttack(a5)
		rts
.Out_The_ATTACk	*--*>kein zweiter eintrag frei weg damit !
		jsr	Out_Bob
		rts
*-------------------------------------------------------------------------------------
Init_Att_Left_Huhn	*---*>Init Left Attack Hhner
		*--*>Try Enter second Huhn
		move	#SN_HUHN_LEFT,d0
		move	Bob_X_Position(a4),d1
		add	#44+16,Bob_X_Position(a4)
		and	#%1111111111110000,Bob_Y_Position(a4)
		add	#48-42,Bob_Y_Position(a4)
		move	Bob_Y_Position(a4),d2
		move.l	Bob_Entry_Adress(a4),a1
		move.l	a4,a5
		jsr	Search_Bob_Entry
		tst	d0
		bmi.s	.Out_The_ATTACk
		*--*> Init Values
		move.b	#-1,NH_Huhn_X_Dir(a5)
		move.b	#-1,NH_Huhn_X_Dir(a4)
		move.l	#NH_Huhn_Att_Master,Bob_Routine(a5)
		move.l	#NH_Huhn_Att_Slave,Bob_Routine(a4)
		move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a4)
		move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a5)
		move.l	a4,ANH_Huhn_Slave_Adr(a5)
		move.l	a5,ANH_Huhn_Slave_Adr(a4)
		move.b	#3,ANH_Huhn_NoAttack(a4)
		move.b	#3,ANH_Huhn_NoAttack(a5)
		rts
.Out_The_ATTACk	*--*>kein zweiter eintrag frei weg damit !
		jsr	Out_Bob
		rts
*-------------------------------------------------------------------------------------
Init_Right_Huhn:	*--*>Init Right Huhn
		move.b	#1,NH_Huhn_X_Dir(a4)
		move	#$0100,NH_Huhn_X_Speed(a4)
		jsr	NH_TestHuhnRout
		tst	d7
		beq.s	.ENTERWALK
.ENTERFLIGHT	*--*>Enter flieght Huhn
		move.l	#NH_Huhn_FR_Anm,Bob_Next_Anim(a4)
		move.l	#Walk_NH_Huhn_Rout,Bob_Routine(a4)
		move	#-1,NH_Huhn_X_Return(a4)
		move	#FLY_HUHN,NH_Huhn_Which_Rout(a4)
		rts
.ENTERWALK		*--Enter Walk
		move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a4)
		move.l	#Walk_NH_Huhn_Rout,Bob_Routine(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Init_Left_Huhn:	*--*>Init Left Huhn
		move.b	#-1,NH_Huhn_X_Dir(a4)
		move	#$0100,NH_Huhn_X_Speed(a4)
		jsr	NH_TestHuhnRout
		tst	d7
		beq.s	.ENTERWALK
.ENTERFLIGHT	*--*>Enter flight Huhn
		move.l	#NH_Huhn_FL_Anm,Bob_Next_Anim(a4)
		move.l	#Walk_NH_Huhn_Rout,Bob_Routine(a4)
		move	#-1,NH_Huhn_X_Return(a4)
		move	#FLY_HUHN,NH_Huhn_Which_Rout(a4)
		rts
.ENTERWALK		*--Enter Walk
		move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a4)
		move.l	#Walk_NH_Huhn_Rout,Bob_Routine(a4)
		rts
*-------------------------------------------------------------------------------------
*------------	Test if Walk Or Fly
*-------------------------------------------------------------------------------------
NH_TestHuhnRout:	*--*>Init Walk/Fly Flag to Walk
		moveq	#0,d7
		*--*>Calculate LevelAdr
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	#16,d0
		add	#48,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>Boden ?
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.OutBob
		cmp.b	#boden,Block_Through(a1)
		beq.s	.Walk
.Fly		moveq	#-1,d7	;Fliegen
		rts
.Walk		and	#%1111111111110000,Bob_Y_Position(a4)
		add	#48-42,Bob_Y_Position(a4)
		rts
.OutBob		*--*>Auf Schrgen kein Hhner
		move.b	#BOB_FALSE,Bob_Used(a4)
		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*-----------------	HUHN MAIN ROUTS
*-------------------------------------------------------------------------------------
**************************************************************************************
NH_Huhn_Att_Slave:	*--*>Global Routs
		jsr	Standart_BobAnim
		jsr	Test_TEMET_Hit
		jsr	ANH_Test_TEMET_Hit_Bob
		jsr	Show_NaturObject
		rts		
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NH_Huhn_Att_Master:	*--*>Global Routs
		jsr	Standart_BobAnim
		jsr	Show_NaturObject
		move.l	ANH_Huhn_Slave_Adr(a4),a5
		jsr	Test_Bob_Out
		cmp.b	#BOB_FALSE,Bob_Used(a4)
		bne.s	.normal_Routinen
		move.b	#BOB_FALSE,Bob_Used(a5)
		rts
.normal_Routinen	*--*>Test which Routs
		cmp.b	#A_NORMAL_HUHN,ANH_Huhn_Which_Rout(a4)
		beq.s	A_Normal_Routs
		cmp.b	#A_JUMP_HUHN,ANH_Huhn_Which_Rout(a4)
		beq.s	Jump_Routs
		cmp.b	#WAIT_SHORT,ANH_Huhn_Which_Rout(a4)
		beq.s	Wait_Short_Routs
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
A_Normal_Routs	*--*>Normal Walk Routs
		jsr	Test_TEMET_Hit
		jsr	ANH_Make_X_Move
		tst.b	ANH_Huhn_Sit_Down(a4)
		beq.s	.Test_Jump
		subq.b	#1,ANH_Huhn_Sit_Down(a4)
		bra.s	.After_Test
.Test_Jump		jsr	ANH_Test_force_Jump
		tst.b	ANH_Huhn_Which_Rout(a4)
		bne.s	.NoXKoll
.After_Test		jsr	ANH_Test_Platt_Ende
		move.l	a4,-(sp)
		move.l	a5,a4
		jsr	NH_TestHuhnXKoll
		move.l	(sp)+,a4
		tst	d7
		beq.s	.NoXKoll
		jsr	ANH_Change_Walk_Dir
		move.b	#5,ANH_Huhn_Sit_Down(a5)
.NoXKoll		jsr	ANH_Test_TEMET_Hit_Bob
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Jump_Routs		*--*>Normal Jump Routs
		jsr	Test_TEMET_Hit
		jsr	ANH_Test_TEMET_Hit_Bob
		tst.b	ANH_Huhn_Sit_Down(a4)
		bne.s	.CountDown
		jsr	ANH_Make_XY_Jump
		rts
.CountDown		*--*>Sit Down for a While
		subq.b	#1,ANH_Huhn_Sit_Down(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Wait_Short_Routs	*--*>Wait short after Jump
		subq.b	#1,ANH_Huhn_Sit_Down(a4)
		jsr	Test_TEMET_Hit
		jsr	ANH_Test_TEMET_Hit_Bob
		tst.b	ANH_Huhn_Sit_Down(a4)
		beq.s	.Init_Normal
		rts
.Init_Normal	*--*>Normales Huhn Initialisieren
		move	#2,Bob_Anim_Delay_Init(a4)
		move	#2,Bob_Anim_Delay_Init(a5)
		clr.b	ANH_Huhn_Which_Rout(a4)
		clr.b	ANH_Huhn_Which_Rout(a5)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.initRightWalk
.initLeftWalk	move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a4)
		move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a5)
		bra.s	.INextVals
.initRightWalk	move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a4)
		move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a5)
.INextVals		*--*>Change Master-Salve Modies
		move.l	#NH_Huhn_Att_Slave,Bob_Routine(a4)
		move.l	#NH_Huhn_Att_Master,Bob_Routine(a5)
		move.b	#30,ANH_Huhn_Sit_Down(a5)
		rts
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
Walk_NH_Huhn_Rout:	*--*>Global Routs
		jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		jsr	Show_NaturObject
		*--*>Test which Routs
		cmp	#NORMAL_HUHN,NH_Huhn_Which_Rout(a4)
		beq.s	.Normal_Routs
		cmp	#TRY_FLY_HUHN,NH_Huhn_Which_Rout(a4)
		beq.s	.Try_Fly_Routs
		cmp	#FLY_HUHN,NH_Huhn_Which_Rout(a4)
		beq.s	.Fly_Routs
		cmp	#LAND_HUHN,NH_Huhn_Which_Rout(a4)
		beq	.Land_Routs
		cmp	#FALL_HUHN,NH_Huhn_Which_Rout(a4)
		beq	.Fall_Routs
		cmp	#PLATT_HUHN,NH_Huhn_Which_Rout(a4)
		beq	.Platt_Routs
		rts
*---------------------------------------------------------------------------
*---------------------------------------------------------------------------
.Normal_Routs	*--*>Normal Walk Routs
		jsr	Test_TEMET_Hit
		jsr	NH_Make_X_Move
		add	#$0100,NH_Huhn_X_Speed(a4)
		jsr	NH_Test_forceFlight
		jsr	NH_TestHuhnXKoll
		tst	d7
		beq.s	.NoXKoll
		neg.b	NH_Huhn_X_Dir(a4)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.initRightWalk
.initLeftWalk	move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a4)
		bra.s	.NoXKoll
.initRightWalk	move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a4)
.NoXKoll		jsr	NH_Test_TEMET_Hit_Bob
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
.Try_Fly_Routs	*--*>Naormal Walk Routs
		jsr	Test_TEMET_Hit
		jsr	NH_Make_Y_Start
		jsr	NH_Test_TEMET_Hit_Bob
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
.Fly_Routs		*--*>Normal Walk Routs
		jsr	Test_TEMET_Hit
		jsr	NH_Make_X_Move_Fl
		add	#$0100,NH_Huhn_X_Speed(a4)
		jsr	NH_Test_forceLand
		jsr	NH_TestHuhnXKoll
		tst	d7
		beq.s	.NoXFKoll
		neg.b	NH_Huhn_X_Dir(a4)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.initRightFly
.initLeftFly	move.l	#NH_Huhn_FL_Anm,Bob_Next_Anim(a4)
		bra.s	.NoXFKoll
.initRightFly	move.l	#NH_Huhn_FR_Anm,Bob_Next_Anim(a4)
.NoXFKoll	jsr	NH_Test_TEMET_Hit_Bob
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
.Land_Routs		*--*>Naormal Walk Routs
		jsr	Test_TEMET_Hit
		jsr	NH_Make_Y_Land
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.FlyRight
.FlyLeft		subq	#1,Bob_X_Position(a4)
		bra.s	.makeRest
.FlyRight		addq	#1,Bob_X_Position(a4)
.makeRest	jsr	NH_TestHuhnXKoll
		tst	d7
		beq.s	.NoXLKoll
		neg.b	NH_Huhn_X_Dir(a4)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.initRightFlyLA
.initLeftFlyLA	move.l	#NH_Huhn_FL_Anm_CNT,Bob_Next_Anim(a4)
		bra.s	.NoXLKoll
		rts
.initRightFlyLA	move.l	#NH_Huhn_FR_Anm_CNT,Bob_Next_Anim(a4)
.NoXLKoll	jsr	NH_Test_TEMET_Hit_Bob
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
.Fall_Routs		*--*>Naormal Walk Routs
		jsr	NH_Fall_Down
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
.Platt_Routs	*--*>Platt Routs
		subq	#1,NH_Huhn_Sit_Down(a4)
		beq.s	.EnterNormalHuhn
		cmp	#146,NH_Huhn_Sit_Down(a4)
		bne	.NoNormal
		*--Enter EI
		move	#SN_EI,d0
		move	Bob_X_Position(a4),d1
		move	Bob_Y_Position(a4),d2
		add	#20,d2
		lea	Area_Enter_Vector(a6),a1
		move.l	a4,a5
		jsr	Search_Bob_Entry
		tst	d0
		bmi.s	.NoEntryFound
		*--*>Entry Found / INIT VALS
		move.b	NH_Huhn_X_Dir(a5),Ei_X_Dir(a4)
		neg.b	Ei_X_Dir(a4)
		tst.b	Ei_X_Dir(a4)
		bpl.s	.Init_Ei_Right
.Init_Ei_Left	*--*>Ei Left Vals
		sub	#12,Bob_X_Position(a4)
		move.l	#Ei_Left_Anm,Bob_Next_Anim(a4)
		bra.s	.NoEntryFound
.Init_Ei_Right	*--*>Ei Right Vals
		add	#28,Bob_X_Position(a4)
		move.l	#Ei_Right_Anm,Bob_Next_Anim(a4)
.NoEntryFound	move.l	a5,a4
		bra.s	.NoNormal

.EnterNormalHuhn	*--*>	NH_Huhn_Stand_Up-> Normal Huhn
		move	#NORMAL_HUHN,NH_Huhn_Which_Rout(a4)
		move	#ANIM_NORM,Bob_Anim_Delay_Init(a4)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.initRightWalkS
.initLeftWalkS	move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a4)
		rts
.initRightWalkS	move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a4)
		rts
.NoNormal		jsr	NH_Test_TEMET_Hit_Bob
		rts

**************************************************************************************
*-------------------------------------------------------------------------------------
*-----------------	HUHN ROUTS
*-------------------------------------------------------------------------------------
**************************************************************************************
ANH_Make_XY_Jump	*---*>Make XY Move for Jump
		tst.b	ANH_Huhn_X_Dir(a4)
		bpl.s	.Move_Right_XY
.Move_Left_XY	subq	#1,Bob_X_Position(a4)
		bra.s	.MakeY
.Move_Right_XY	addq	#1,Bob_X_Position(a4)
.MakeY		*--*>Get Tab and test if real fly
		lea	.NH_Huhn_Jump_Tab,a0
		moveq	#0,d0
		move.b	NH_Huhn_Tab_Offs(a4),d0
		add	d0,a0
		cmp.b	#BUMP_ANUF,(a0)
		beq.s	.Make_Egg
		cmp.b	#END_JUMP,(a0)
		beq	.Make_Normal
		cmp.b	#DELAY_PLUS,(a0)
		beq	.Make_Delay
		move.b	(a0),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		addq.b	#1,ANH_Huhn_Tab_Offs(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
.Make_Egg		*--*>Init Egg
		IFEQ	SOUNDFX
		moveq	#7,d0
		jsr	TFMX+16
		ENDC
		addq.b	#1,ANH_Huhn_Tab_Offs(a4)
		move	#2,Bob_Anim_Delay_Init(a5)
		*--Enter EI
		move.l	a4,-(sp)
		move	#SN_EI,d0
		move	Bob_X_Position(a5),d1
		move	Bob_Y_Position(a5),d2
		add	#20,d2
		lea	Area_Enter_Vector(a6),a1
		jsr	Search_Bob_Entry
		tst	d0
		bmi.s	.NoEiFound
		*--*>Entry Found / INIT VALS
		move.b	NH_Huhn_X_Dir(a5),Ei_X_Dir(a4)
		tst.b	Ei_X_Dir(a4)
		bpl.s	.Init_Ei_Right1
.Init_Ei_Left1	*--*>Ei Left Vals
		sub	#12+16,Bob_X_Position(a4)
		move.l	#Ei_Left_Anm,Bob_Next_Anim(a4)
		bra.s	.Enter_Smoke
.Init_Ei_Right1	*--*>Ei Right Vals
		add	#28-16,Bob_X_Position(a4)
		move.l	#Ei_Right_Anm,Bob_Next_Anim(a4)
.Enter_Smoke	move.l	a5,a4
		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_X
		jsr	ENTER_FEDERN
.NoEiFound	move.l	(sp)+,a4

		tst.b	ANH_Huhn_X_Dir(a4)
		bpl.s	.Init_Left_Platt
.Init_Right_Platt	*--*>Init Platt Huhn Right
		move.l	#NH_Huhn_PR_Anm,Bob_Next_Anim(a5)
		clr.w	Bob_Anim_Delay(a5)
		bra	.MakeY
.Init_Left_Platt	*--*>Init Platt Huhn Left
		move.l	#NH_Huhn_PL_Anm,Bob_Next_Anim(a5)
		clr.w	Bob_Anim_Delay(a5)
		bra	.MakeY
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
.Make_Delay		*--*>Init New Delay
		addq.b	#1,ANH_Huhn_Tab_Offs(a4)
		move	#4,Bob_Anim_Delay_Init(a4)
		bra	.MakeY
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
.Make_Normal	*--*>Init Land Huhn
		move	#42,d0
		tst.b	ANH_Huhn_X_Dir(a4)
		bpl.s	.Okd0Pos
		neg	d0
.Okd0Pos		add	d0,ANH_Huhn_X_Range(a4)
		add	d0,ANH_Huhn_X_Range(a5)
		move.b	#WAIT_SHORT,ANH_Huhn_Which_Rout(a4)
		move.b	#35,ANH_Huhn_Sit_Down(a4)
		move	#3,Bob_Anim_Delay_Init(a4)
		tst.b	ANH_Huhn_X_Dir(a4)
		bpl.s	.Right_Anm
.Left_Anm		*--*>Left Anm
		move.l	#ANH_Huhn_PL_Anm,Bob_Next_Anim(a4)
		rts
.Right_Anm		*--*>Right Anm
		move.l	#ANH_Huhn_PR_Anm,Bob_Next_Anim(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
DELAY_PLUS	=	-101
BUMP_ANUF		=	-100
END_JUMP		=	100
.NH_Huhn_Jump_Tab	dc.b	-4,-4,-4,-4,-3,-4,-3,-3,-2,-3,-2,-2,-1,-2,-1,-1
		dc.b	-0,-1,-0,-0,-0,-1,-0,-0,-0,-0,+1,-0,-0,-0,+1,+0
		dc.b	DELAY_PLUS
		dc.b	+0,+0,+1,+0,+1,+1,+1,+2,+1,+2,+2,+2
		dc.b	BUMP_ANUF
		dc.b	-4,-4,-3,-4
		dc.b	-3,-2,-1,-2,-1,-0,-1,-0,-0,-0,-1,-0
		dc.b	+0,+0,+0,+1,+0,+1,+2,+1
		dc.b	+2,+2,+2,+3,+2,+3,+3,+2,+3,+4,+3,+4,+4,+5,+4,+5
		dc.b	END_JUMP
		even
*---------------------------------------------------------------------------
ANH_Test_Platt_Ende	*--*>Test if there is nor ground to walk on
		move	Bob_X_Position(a5),d0
		move	Bob_Y_Position(a5),d1
		sub	#16,d0	;***!!!
		tst.b	NH_Huhn_X_Dir(a5)
		bmi.s	.okydoky
		add	#16+32,d0	;***!!!	32
.okydoky		add	#48,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>Boden ?
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.ChangeDir
		cmp.b	#swand,Block_Through(a1)
		beq.s	.ChangeDir
		cmp.b	#boden,Block_Through(a1)
		bne.s	.ChangeDir
		rts
.ChangeDir		jsr	ANH_Change_Walk_Dir
		move.b	#5,ANH_Huhn_Sit_Down(a5)
		rts
*---------------------------------------------------------------------------
ANH_Test_force_Jump	*--*>Testen ob TEMEt in Nhe
		tst.b	ANH_Huhn_NoAttack(a4)
		beq.s	.Ok
		subq.b	#1,ANH_Huhn_NoAttack(a4)
		bra	.No_Temet_Trace
.Ok		*--Get Values
		lea	(a6),a2
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		*--Sub Bob Values
		sub	Bob_X_Position(a4),d0
		sub	Bob_Y_Position(a4),d1
		*--Test if Bob-YDir is down
		tst	d1
		bpl.s	.Ok_Y_pos
		neg	d1
.Ok_Y_pos		cmp	#80,d1
		bhs.s	.No_Temet_Trace
		tst	d0
		bpl.s	.NH_Huhn_Left
.NH_Huhn_Right		*--huhn is Right
		tst.b	ANH_Huhn_X_Dir(a4)
		bpl.s	.No_Temet_Trace
		neg	d0
		cmp	#60,d0
		bls.s	.No_Temet_Trace
		cmp	#180,d0
		bhs.s	.No_Temet_Trace
		bra.s	.TEMET_Trace
.NH_Huhn_Left		*--Huhn is Left
		tst.b	ANH_Huhn_X_Dir(a4)
		bmi.s	.No_Temet_Trace
		cmp	#60,d0
		bls.s	.No_Temet_Trace
		cmp	#180,d0
		bhs.s	.No_Temet_Trace
.TEMET_Trace	*--INIT Beschl down
		move.b	#A_JUMP_HUHN,ANH_Huhn_Which_Rout(a4)
		tst.b	ANH_Huhn_X_Dir(a4)
		bpl.s	.Att_Right
.Att_Left		move.l	#ANH_Huhn_Att_FL_Anm,Bob_Next_Anim(a4)
		move.l	#ANH_Huhn_R_Wait_Anm,Bob_Next_Anim(a5)
		bra.s	.GetNextVals
.Att_Right		move.l	#ANH_Huhn_Att_FR_Anm,Bob_Next_Anim(a4)
		move.l	#ANH_Huhn_L_Wait_Anm,Bob_Next_Anim(a5)
.GetNextVals	move.b	#10,ANH_Huhn_Sit_Down(a4)
		clr.b	NH_Huhn_Tab_Offs(a4)
		move.b	#WAIT_FOR_BUMP,ANH_Huhn_Which_Rout(a5)
		move	#16,Bob_Anim_Delay_Init(a5)
.No_Temet_Trace	rts
*---------------------------------------------------------------------------
ANH_Change_Walk_Dir	*---*>Laufrichtung und Prioritten ndern
		neg.b	NH_Huhn_X_Dir(a4)
		neg.b	NH_Huhn_X_Dir(a5)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.IinitRightWalk
.IinitLeftWalk	move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a4)
		move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a5)
		bra.s	.NextVals
.IinitRightWalk	move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a4)
		move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a5)
.NextVals		*--*>Change Master-Salve Modies
		move.l	#NH_Huhn_Att_Slave,Bob_Routine(a4)
		move.l	#NH_Huhn_Att_Master,Bob_Routine(a5)
		move.b	#3,ANH_Huhn_NoAttack(a4)
		move.b	#3,ANH_Huhn_NoAttack(a5)
		move.b	#A_NORMAL_HUHN,ANH_Huhn_Which_Rout(a4)
		rts
*---------------------------------------------------------------------------
*-----------	MOVE ROUTINES
*---------------------------------------------------------------------------
ANH_Make_X_Move	*--*>X Speed Make
		tst.b	ANH_Huhn_X_Dir(a4)
		bpl.s	.Move_Right
.Move_Left		*--Test if Flyer scholud move Right
		tst	ANH_Huhn_X_Range(a4)
		bpl.s	.Move_X
		move	ANH_Huhn_X_Range(a4),d0
		neg	d0
		cmp	#140,d0
		blo.s	.Move_X
		jsr	ANH_Change_Walk_Dir
		move.b	#5,ANH_Huhn_Sit_Down(a5)
		clr.w	Bob_Anim_Delay(a4)
		clr.w	Bob_Anim_Delay(a5)
		bra.s	.Move_X
.Move_Right		*--Test if Flyer scholud move Left
		tst	ANH_Huhn_X_Range(a4)
		bmi.s	.Move_X
		move	ANH_Huhn_X_Range(a4),d0
		cmp	#140,d0
		blo.s	.Move_X
		jsr	ANH_Change_Walk_Dir
		move.b	#5,ANH_Huhn_Sit_Down(a5)
		clr.w	Bob_Anim_Delay(a4)
		clr.w	Bob_Anim_Delay(a5)
.Move_X		*--Move Flyer in X Direction
		move	#1,d0
		tst.b	ANH_Huhn_X_Dir(a4)
		bpl.s	.okPositiv
		neg	d0
.okPositiv		add	d0,Bob_X_Position(a4)
		add	d0,Bob_X_Position(a5)
		add	d0,ANH_Huhn_X_Range(a4)
		add	d0,ANH_Huhn_X_Range(a5)
.NoRangeChange	rts
*-------------------------------------------------------------------------------------
*-----------	HUHN DEAD/DAMAGE ROUTS
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ANH_Test_TEMET_Hit_Bob	*--*>Test Kollision with TEMET
		tst	NH_Huhn_Hit(a4)
		bmi.s	.EI_HIT
		lea	(a6),a2
		jsr	KollTopBobTest
		tst	d7
		bmi	.NoKoll
.EI_HIT		*--Kollision !
		lea	(a6),a2
		jsr	Make_Bump
		subq	#4,TEMET_Y_Position(a6)
		*--Effect Bobs
		jsr	ENTER_SMOKE_X
		jsr	ENTER_SMOKE_Y
		jsr	ENTER_FEDERN
		jsr	Out_Bob_Damage
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
		*--*>anderes Huhn in normales verwandeln
		move.l	ANH_Huhn_Slave_Adr(a4),a5
		move	#2,Bob_Anim_Delay_Init(a5)
		clr.w	NH_Huhn_X_Range(a5)
		clr.w	NH_Huhn_Y_Speed(a5)
		clr.w	NH_Huhn_Sit_Down(a5)
		move.b	NH_Huhn_X_Dir(a4),NH_Huhn_X_Dir(a5)
		move	#$0100,NH_Huhn_X_Speed(a5)
		move.l	#Walk_NH_Huhn_Rout,Bob_Routine(a5)

		cmp.b	#WAIT_FOR_BUMP,ANH_Huhn_Which_Rout(a4)
		bne.s	.WalkHuhn
.FlyHuhn		*--*>Enter FlyHuhn
		move	#-1,NH_Huhn_X_Return(a5)
		move	#FLY_HUHN,NH_Huhn_Which_Rout(a5)
		tst.b	NH_Huhn_X_Dir(a5)
		bpl.s	.MF_I_R
.MF_I_L		move.l	#NH_Huhn_FL_Anm,Bob_Next_Anim(a5)
		rts
.MF_I_R		move.l	#NH_Huhn_FR_Anm,Bob_Next_Anim(a5)
		rts

.WalkHuhn		*--*>Enter_WalkHuhn
		clr.w	NH_Huhn_Which_Rout(a5)
		clr.w	NH_Huhn_X_Return(a5)
		tst.b	NH_Huhn_X_Dir(a5)
		bpl.s	.MC_I_R
.MC_I_L		move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a5)
		rts
.MC_I_R		move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a5)
.NoKoll		*--*>ENDE
		rts

**************************************************************************************
**************************************************************************************
*-------------------------------------------------------------------------------------
*------------	Test X KOLLISION
*-------------------------------------------------------------------------------------
NH_TestHuhnXKoll:
		moveq	#0,d7	;NoKollision
		;Calculate LevelAdr

		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.TestRightXKoll
.TestLeftXKoll	*--*>Test Left Side
		move	Bob_X_Position(a4),d0
		subq	#4,d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		add	#16,d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.NoXKolli
		*--X-Kollision
		moveq	#-1,d7
		rts
.TestRightXKoll	*--*>Test Right Side
		move	Bob_X_Position(a4),d0
		addq	#4,d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		add	#32,d0
		add	#16,d1
		jsr	Get_Block_Flags
		swaP	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.NoXKolli
		*--X-Kollision
		moveq	#-1,d7
.NoXKolli		rts
**************************************************************************************
**************	MAIN ROUTS
**************************************************************************************
**************************************************************************************
**************	Change Mode Routs
**************************************************************************************
NH_Test_forceLand	*--*>Test if there is the Point of Land
		move	NH_Huhn_X_Return(a4),d0
		bmi.s	.NoLanding
		cmp	Bob_X_Position(a4),d0
		bne.s	.NoLanding
		*--*>Init Landing
		IFEQ	SOUNDFX
		moveq	#15,d0
		jsr	TFMX+16
		ENDC
		move	#LAND_HUHN,NH_Huhn_Which_Rout(a4)
		move.w	#5,Bob_Anim_Delay_Init(a4)
		clr.b	NH_Huhn_Tab_Offs(a4)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.InitRight_L
.InitLeft_L	move.l	#NH_Huhn_FL_Anm_CNT,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		rts
.InitRight_L	move.l	#NH_Huhn_FR_Anm_CNT,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		rts
.NoLanding	*--*>No Point of Return
		rts
*---------------------------------------------------------------------------
NH_Test_forceFlight	*--*>Test if there is nor ground to walk on
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		tst.b	NH_Huhn_X_Dir(a4)
		bmi.s	.okydoky
		add	#32,d0
.okydoky		add	#48,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>Boden ?
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.EnterFlight
		cmp.b	#swand,Block_Through(a1)
		beq.s	.EnterFlight
		cmp.b	#boden,Block_Through(a1)
		bne.s	.EnterFlight
		rts
.EnterFlight	*--*>Save Values and Enter Flight Huhn
		IFEQ	SOUNDFX
		moveq	#15,d0
		jsr	TFMX+16
		ENDC
		move	Bob_X_Position(a4),NH_Huhn_X_Return(a4)
		move	#TRY_FLY_HUHN,NH_Huhn_Which_Rout(a4)
		clr.b	NH_Huhn_Tab_Offs(a4)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.InitRight
.InitLeft		move.l	#NH_Huhn_Try_FL_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		rts
.InitRight		move.l	#NH_Huhn_Try_FR_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		rts

NH_Fall_Down		*--*>runterfallen
		add	#$0010,NH_Huhn_Y_Speed(a4)
		move.b	NH_Huhn_Y_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		move	Bob_X_Position(a4),d0
		add	#16,d0
		move	Bob_Y_Position(a4),d1
		add	#40,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.Down_Kollide
		cmp.b	#boden,Block_Through(a1)
		bne.s	.No_Down_Kollide
.Down_Kollide	*--*>DAMAGE BOB
		move.b	#BOB_FALSE,Bob_Used(a4)
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_X
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_Y
		jsr	ENTER_FEDERN
		IFEQ	SOUNDFX
		moveq	#3,d0
		jsr	TFMX+16
		ENDC
.No_Down_Kollide	rts
*---------------------------------------------------------------------------
NH_Make_Y_Land	*--*>Make Landing
		lea	.NH_Huhn_Land_Tab,a0
		moveq	#0,d0
		move.b	NH_Huhn_Tab_Offs(a4),d0
		add	d0,a0
		move.b	(a0),d0
		cmp.b	#-30,d0
		bne.s	.OkNormal
		move.b	#.NH_Huhn_Land_Land_Tab-.NH_Huhn_Land_Tab,NH_Huhn_Tab_Offs(a4)
		bra.s	NH_Make_Y_Land
.OkNormal	ext.w	d0
		add	d0,Bob_Y_Position(a4)
		addq.b	#1,NH_Huhn_Tab_Offs(a4)
		*--*>Calculate LevelAdr
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	#16,d0
		add	#40,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>Boden ?
		cmp.b	#boden,Block_Through(a1)
		beq.s	.Init_Norm
		rts
.Init_Norm	*--*>Init Fly Huhn
		move.w	Bob_Y_Position(a4),d1
		and.w	#$fff0,d1
		addq.w	#5,d1
		move.w	d1,Bob_Y_Position(a4)

		clr.w	Bob_Y_Offset(a4)
		move	#NORMAL_HUHN,NH_Huhn_Which_Rout(a4)
		move.w	#ANIM_NORM,Bob_Anim_Delay_Init(a4)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.init_Norm_R
.init_Norm_L	move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		rts
.init_Norm_R	move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.NH_Huhn_Land_Tab
		dc.b	+1,0,+1,0,+1,+1,+2,+1,+2,+2,+1,+0,+0,+1,+0,+0,+0
		dc.b	+1,+0,+0,+0,+0,+0,+1,+0,+0,+1,+0,+1,+2,+1,+2,+2
		dc.b	+1,+1,+0,+0,+1,+0,+0,+0,+0,+1,+0,+0,+0,+0,+1
		dc.b	+0,+0,+0,+0,+1,+0,+0,+1,+1,+2,+1,+2,+2,+2,+1
		dc.b	+2,+1,+1,+2,+1,+0,+1,+0,+0,+0,+1,+0,+0,+0,+0
		dc.b	+1,+0,+0,+0,+0,1+0,+0,+0,+0,+1,+0,+0,+0,+0
.NH_Huhn_Land_Land_Tab
		dc.b	+1,+0,+0,+0,+0,1+0,+0,+0,+0,+1,+0,+0,+0,+0
		dc.b	-30
		even
*---------------------------------------------------------------------------
NH_Make_Y_Start	*--*>Get Tab and test if real fly
		lea	.NH_Huhn_Jump_Tab,a0
		moveq	#0,d0
		move.b	NH_Huhn_Tab_Offs(a4),d0
		add	d0,a0
		cmp.b	#NH_ENDJUMPTAB,(a0)
		beq.s	.Init_Fly
		move.b	(a0),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		addq.b	#1,NH_Huhn_Tab_Offs(a4)
		rts
.Init_Fly		*--*>Init Fly Huhn
		clr.w	Bob_Y_Offset(a4)
		move	#FLY_HUHN,NH_Huhn_Which_Rout(a4)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.init_Fly_R
.init_Fly_L	move.l	#NH_Huhn_FL_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		rts
.init_Fly_R	move.l	#NH_Huhn_FR_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NH_ENDJUMPTAB	=	1
		dc.w	0
.NH_Huhn_Jump_Tab	dc.b	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
		dc.b	-4,-4,-3,-4,-3,-3,-2,-2,-2,-2,-1,-1,-0,-1,-0,-0
		dc.b	-0,-0,+1,+0,+1,+1,+2,+2,+2,+1
		dc.b	+0,+0,-1,+1,-2,-1,-1,-1,-1,-1,-1,-0,-1,-0,-0
		dc.b	-0,-0,-0,-0,+1,-0,-0,+1,+0,+1,+1
		dc.b	+0,-1,+1,-1,-1,-0,-1,-0,-0,-1,-0,-0,-0
		dc.b	-0,-0,+1,+1
		dc.b	NH_ENDJUMPTAB
		even
*---------------------------------------------------------------------------
NH_Make_X_Move	*--*>X Speed Make
		tst.b	NH_Huhn_X_Speed(a4)
		bne.s	.Move_IT_X
		rts
.Move_IT_X		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.Move_Right
.Move_Left		*--Test if Flyer scholud move Right
		tst	NH_Huhn_X_Range(a4)
		bpl.s	.Move_X
		move	NH_Huhn_X_Range(a4),d0
		neg	d0
		cmp	#140,d0
		blo.s	.Move_X
		neg.b	NH_Huhn_X_Dir(a4)
		move.l	#NH_Huhn_WR_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		bra.s	.Move_X
.Move_Right		*--Test if Flyer scholud move Left
		tst	NH_Huhn_X_Range(a4)
		bmi.s	.Move_X
		move	NH_Huhn_X_Range(a4),d0
		cmp	#140,d0
		blo.s	.Move_X
		neg.b	NH_Huhn_X_Dir(a4)
		move.l	#NH_Huhn_WL_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		;bra.s	.Move_X
.Move_X		*--Move Flyer in X Direction
		move.b	NH_Huhn_X_Speed(a4),d0
		subq.b	#1,NH_Huhn_X_Speed(a4)
		ext.w	d0
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.okPositiv
		neg	d0
.okPositiv	add	d0,Bob_X_Position(a4)
		add	d0,NH_Huhn_X_Range(a4)
.NoRangeChange	rts
*-------------------------------------------------------------------------------------
NH_Make_X_Move_Fl	*--*>X Speed Make
		tst.b	NH_Huhn_X_Speed(a4)
		bne.s	.Move_IT_XF
		rts
.Move_IT_XF	tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.Move_RightF
.Move_LeftF	*--Test if Flyer scholud move Right
		tst	NH_Huhn_X_Range(a4)
		bpl.s	.Move_XF
		move	NH_Huhn_X_Range(a4),d0
		neg	d0
		cmp	#140,d0
		blo.s	.Move_XF
		tst	Bob_Y_Offset(a4)
		bne.s	.Move_XF
		neg.b	NH_Huhn_X_Dir(a4)
		move.l	#NH_Huhn_FR_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		bra.s	.Move_XF
.Move_RightF	*--Test if Flyer scholud move Left
		tst	NH_Huhn_X_Range(a4)
		bmi.s	.Move_XF
		move	NH_Huhn_X_Range(a4),d0
		cmp	#140,d0
		blo.s	.Move_XF
		tst	Bob_Y_Offset(a4)
		bne.s	.Move_XF
		neg.b	NH_Huhn_X_Dir(a4)
		move.l	#NH_Huhn_FL_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		;bra.s	.Move_XF
.Move_XF		*--Move Flyer in X Direction
		move.b	NH_Huhn_X_Speed(a4),d0
		subq.b	#1,NH_Huhn_X_Speed(a4)
		ext.w	d0
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.okPositivF
		neg	d0
.okPositivF	add	d0,Bob_X_Position(a4)
		add	d0,NH_Huhn_X_Range(a4)
.NoRangeChangeF	rts
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
*-----------	HUHN DEAD/DAMAGE ROUTS
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NH_Test_TEMET_Hit_Bob	*--*>Test Kollision with TEMET
		tst	NH_Huhn_Hit(a4)
		bmi	.Ei_Hit
		lea	(a6),a2
		jsr	KollTopBobTest
		tst	d7
		bmi	.NoKoll1
		*--Kollision ! Test if Flyer should explode
		jsr	ENTER_FEDERN
		cmp	#NORMAL_HUHN,NH_Huhn_Which_Rout(a4)
		beq.s	.Test_Walker
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_Flyer		*--*>Test fliegendes Huhn
		lea	(a6),a2
		jsr	Make_Bump
		subq	#4,TEMET_Y_Position(a6)
		move	#FALL_HUHN,NH_Huhn_Which_Rout(a4)
		move	#$0180,NH_Huhn_Y_Speed(a4)
		add	#4,Bob_Y_Position(a4)
		clr.w	Bob_Anim_Delay(a4)
		move.w	#2,Bob_Anim_Delay_Init(a4)
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.initRightFlyLAT
.initLeftFlyLAT	move.l	#NH_Huhn_FL_Anm_CNT,Bob_Next_Anim(a4)
		bra.s	.Weiter
.initRightFlyLAT	move.l	#NH_Huhn_FR_Anm_CNT,Bob_Next_Anim(a4)
.Weiter		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_X
		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_Y
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_Walker	*--*>Test laufendes Huhn
		tst	NH_Huhn_Sit_Down(a4)
		bne	.Out_Huhn
		cmp	#FLIEGEN,TEMET_Status(a2)
		beq	.Out_Huhn
		lea	(a6),a2
		jsr	Make_Bump
		subq	#4,TEMET_Y_Position(a6)
		move	#150,NH_Huhn_Sit_Down(a4)
		move	#PLATT_HUHN,NH_Huhn_Which_Rout(a4)
		clr.w	Bob_Anim_Delay(a4)
		move	#6,Bob_Anim_Delay_Init(a4)
		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_X
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
		tst.b	NH_Huhn_X_Dir(a4)
		bpl.s	.Init_Right_FlyH
.Init_Leftt_FlyH	*--*>Init Left Fly Anim
		move.l	#NH_Huhn_PL_Anm,Bob_Next_Anim(a4)
		rts
.Init_Right_FlyH	*--*>Init Right Fly Anim
		move.l	#NH_Huhn_PR_Anm,Bob_Next_Anim(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Ei_Hit		*--*>Huhn austragen
		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_X
		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_Y
		jsr	ENTER_FEDERN
		jsr	Out_Bob_Damage
		IFEQ	SOUNDFX
		moveq	#10,d0
		jsr	TFMX+16
		ENDC
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Out_Huhn		*--*>Huhn austragen
		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_X
		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_Y
		jsr	Out_Bob_Damage
		IFEQ	SOUNDFX
		moveq	#3,d0
		jsr	TFMX+16
		ENDC
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.NoKoll1		*--keine Kollision
		rts

**************************************************************************************
*-------------------------------------------------------------------------------------
*-----------------	FEDERN & BLTTER
*-------------------------------------------------------------------------------------
**************************************************************************************
BBlatt_X_Dir	=Bob_Special_1	;B
BBlatt_Y_Move	=Bob_Special_1+1	;B
BBlatt_TIME		=Bob_Special_2	;W
BBlatt_XY_Offset	=Bob_Special_3	;W
BBlatt_X_Speed	=Bob_Koords_Save1	;W
BBlatt_Y_Speed	=Bob_Koords_Save1+2	;W
BBlatt_X_Acce	=Bob_Koords_Save2	;W
BBlatt_Y_Acce	=Bob_Koords_Save2+2	;W
*---------------------------------------------------------------------------
Bush_Blatt_Rout:	*--*>Blatt Routs
		tst	BBlatt_Y_Speed(a4)
		beq.s	.test_Init_N_Anim
		jsr	Get_Next_Bob_Frame
		bra.s	.Further_Routs
.test_Init_N_Anim	*--*>Test Left Blatt
		cmp.l	#Blatt_Left_Cmp,Bob_Next_Anim(a4)
		bne.s	.Test_Right_Cmp
		move.l	#Blatt_Anm_Left,Bob_Next_Anim(a4)
		bra.s	.Further_Routs
.Test_Right_Cmp	*--*>Test Right Blatt
		cmp.l	#Blatt_Right_Cmp,Bob_Next_Anim(a4)
		bne.s	.Further_Routs
		move.l	#Blatt_Anm_Right,Bob_Next_Anim(a4)
.Further_Routs	*--*>Make Other Routines
		jsr	Test_Bob_Out
		jsr	Make_Blatt_TIME
		jsr	Make_Blatt_Fall
		jsr	Make_Blatt_X
		jsr	Make_Blatt_Y_Koll
		jsr	Make_Blatt_Speeds
		rts
*---------------------------------------------------------------------------
Make_Blatt_X	*--*>Move_X Mig
		tst.b	BBlatt_Y_Move(a4)
		bne.s	.NoMoveX
		jsr	Standart_BobAnim
.NoMoveX		rts
*---------------------------------------------------------------------------
Blatt_Anm:		dc.w	0
		dc.l	NLeaf_Obj1
		dc.w	1,0
		dc.w	0
		dc.l	NLeaf_Obj1
		dc.w	0,0
		dc.w	0
		dc.l	NLeaf_Obj1
		dc.w	0,0
		dc.w	0
		dc.l	NLeaf_Obj1
		dc.w	-1,0

Blatt_Anm_Left:	dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	-2,-2
		dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	-3,-2
		dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	-3,-2
		dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	-4,-2
		dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	-4,-2
		dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	-4,-2
		dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	-4,-2
		dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	-3,-2
		dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	-3,-2
		dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	-3,-2

		dc.w	0
		dc.l	NLeaf_Obj1
		dc.w	-2,0
		dc.w	0
		dc.l	NLeaf_Obj1
		dc.w	-1,0
		dc.w	0
		dc.l	NLeaf_Obj1
		dc.w	-0,0
		dc.w	0
		dc.l	NLeaf_Obj1
		dc.w	+1,0

Blatt_Anm_Right:
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+2,0
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+3,0
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+3,0
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+4,0
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+4,0
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+4,0
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+4,0
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+4,0
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+3,0
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+3,0
		dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	+3,0

		dc.w	0
		dc.l	NLeaf_Obj1
		dc.w	+2,0
		dc.w	ENTRY_END
		dc.l	Blatt_Anm
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Blatt_Only_Anm_R:	dc.w	0
		dc.l	NLeaf_Obj0
		dc.w	0,-2
Blatt_Right_Cmp:	dc.w	ENTRY_END
		dc.l	Blatt_Only_Anm_R
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Blatt_Only_Anm_L:	dc.w	1
		dc.l	NLeaf_Obj0
		dc.w	0,-2
Blatt_Left_Cmp:	dc.w	ENTRY_END
		dc.l	Blatt_Only_Anm_L

*---------------------------------------------------------------------------
Feder_R_Anm:	dc.w	0
		dc.l	NFeather_Obj0,0
		dc.w	0
		dc.l	NFeather_Obj1,0
		dc.w	ENTRY_END
		dc.l	Feder_R_Anm
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
Feder_L_Anm:	dc.w	1
		dc.l	NFeather_Obj0,0
		dc.w	1
		dc.l	NFeather_Obj1,0
		dc.w	ENTRY_END
		dc.l	Feder_L_Anm
*---------------------------------------------------------------------------
Feder_X_Dir		=Bob_Special_1	;B
Feder_Y_Move	=Bob_Special_1+1	;B
Feder_TIME		=Bob_Special_2	;W
Feder_XY_Offset	=Bob_Special_3	;W
Feder_X_Speed	=Bob_Koords_Save1	;W
Feder_Y_Speed	=Bob_Koords_Save1+2	;W
Feder_X_Acce	=Bob_Koords_Save2	;W
Feder_Y_Acce	=Bob_Koords_Save2+2	;W
*---------------------------------------------------------------------------
Feder_Rout:		*--*>Standart Feder Routs
		jsr	Standart_BobAnim
		jsr	Test_Bob_Out
		jsr	Make_Feder_TIME
		jsr	Make_Feder_Fall
		jsr	Make_Feder_X
		jsr	Make_Feder_Y_Koll
		jsr	Make_Feder_Speeds
		rts
*---------------------------------------------------------------------------
Make_Blatt_Speeds
Make_Feder_Speeds	*---*>Speeds, die Am Anfang Initialisiert werden machen
		*--*>X-Speed
		tst.b	Feder_X_Speed(a4)
		beq.s	.Try_Y
		move	Feder_X_Acce(a4),d0
		add	d0,Feder_X_Speed(a4)
		move.b	Feder_X_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_X_Position(a4)
.Try_Y		*--*>Y-Speed
		tst.b	Feder_Y_Speed(a4)
		beq.s	.Try_Ende
		move	Feder_Y_Acce(a4),d0
		add	d0,Feder_Y_Speed(a4)
		move.b	Feder_Y_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
.Try_Ende		*--*>End-Speed
		rts
*---------------------------------------------------------------------------
Make_Feder_X	*--*>Move_X Mig
		tst.b	Feder_Y_Move(a4)
		bne.s	.NoMoveX
		lea	.Move_Tab_X,a0
		add	Feder_XY_Offset(a4),a0
		cmp.b	#MOVETABENDE,(a0)
		bne.s	.NoGoBack
		clr.w	Feder_XY_Offset(a4)
		lea	.Move_Tab_X,a0
.NoGoBack		addq	#1,Feder_XY_Offset(a4)
		move.b	(a0),d0
		ext.w	d0
		tst.b	Feder_X_Dir(a4)
		bpl.s	.OkVorz
		neg	d0
.OkVorz		add	d0,Bob_X_Position(a4)
		rts
.NoMoveX		*--*>Auf Boden
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
MOVETABENDE	=-100
.Move_Tab_X	dc.b	+1,0,+1,0,+1,0,+1,0,+1,0,0,+1,0,0,+1,0,0,0,+1,0,0,0,+1
		dc.b	0,0,0,0,+1,0,0,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,-1,0,-1
		dc.b	0,0,-1,0,0,-1,0,0,0,-1,0,0,0,+1,0,0,0,+1,0,0
		dc.b	MOVETABENDE
		even
*---------------------------------------------------------------------------
Make_Blatt_TIME
Make_Feder_TIME	*--*>Test if its Time to blink
		subq	#1,Feder_TIME(a4)
		bne.s	.NoOut_Feder
		*--*>Out Feder
		jsr	Out_Bob_Damage
		rts
.NoOut_Feder	*--*>Test if Feder should blink
		cmp	#50,Feder_TIME(a4)
		bhs.s	.NoBlink
		move	Feder_TIME(a4),d1
		and	#1,d1
		beq.s	.NoBlink
		rts
.NoBlink		*--*>Ende
		jsr	Show_NaturObject
		rts
*---------------------------------------------------------------------------
Make_Blatt_Fall
Make_Feder_Fall	*--*>Fall Feder
		tst.b	Feder_Y_Move(a4)
		bne.s	.NoMove
		tst.b	Akt_Copper_Frame(a6)
		beq.s	.NoMove
		addq	#1,Bob_Y_Position(a4)
.NoMove		rts
*---------------------------------------------------------------------------
Make_Blatt_Y_Koll
Make_Feder_Y_Koll	*--*>Test if Fall weiter geht
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	#8,d0
		add	#8,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>Boden ?
.TestSwand		cmp.b	#swand,Block_Through(a1)
		beq.s	.StopFall
.TestBoden		cmp.b	#boden,Block_Through(a1)
		bne.s	.NoStoppFall
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq.s	.NoStoppFall
		*--*>Stop Fall
.StopFall		move	#24,Bob_Anim_Delay_Init(a4)
		move.b	#1,Feder_Y_Move(a4)
.NoStoppFall	rts

**************************************************************************************
ENTER_Bltter	*---*>Enter vier Bltter
		movem.l	a0-a6/d0-d7,-(sp)
		*--*>Enter 1
		move.l	a4,a5
		lea	Blatt_1_1,a0
		jsr	Get_Entry_Bush
		tst	d0
		bmi.s	.NoEntryFound
		jsr	Enter_Feder
		move.l	a5,a4
		*--*>Enter 2
		lea	Blatt_1_2,a0
		jsr	Get_Entry_Bush
		tst	d0
		bmi.s	.NoEntryFound
		jsr	Enter_Feder
		move.l	a5,a4
		*--*>Enter 3
		lea	Blatt_1_3,a0
		jsr	Get_Entry_Bush
		tst	d0
		bmi.s	.NoEntryFound
		jsr	Enter_Feder
		move.l	a5,a4
		*--*>Enter 4
		lea	Blatt_1_4,a0
		jsr	Get_Entry_Bush
		tst	d0
		bmi.s	.NoEntryFound
		jsr	Enter_Feder
.NoEntryFound	*--*>kein Eintrag mehr fei
		move.l	a5,a4
		movem.l	(sp)+,a0-a6/d0-d7
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Blatt_1_1		*--*>Baltt 1
		dc.w	-4+8,8
		dc.l	Blatt_Only_Anm_L
		dc.w	150
		dc.b	-1,0
		dc.w	$fe80,$0020,$fd00,$0040
Blatt_1_2		*--*>Blatt 2
		dc.w	6-8,2
		dc.l	Blatt_Only_Anm_L
		dc.w	150
		dc.b	-1,0
		dc.w	$fe40,$0020,$fc00,$0040
Blatt_1_3		*--*>Blatt 3
		dc.w	26-8,2
		dc.l	Blatt_Only_Anm_R
		dc.w	150
		dc.b	+1,0
		dc.w	$01c0,0-$0020,$fc80,$0040
Blatt_1_4		*--*>Blatt 4
		dc.w	32+4-8,8
		dc.l	Blatt_Only_Anm_R
		dc.w	150
		dc.b	1,0
		dc.w	$0200,0-$0020,$fc80,$0040
*-------------------------------------------------------------------------------------
ENTER_FEDERN	*---*>Enter vier Federn
		movem.l	a0-a6/d0-d7,-(sp)
		tst.b	Akt_Copper_Frame(a6)
		beq.s	.Enter_SecondFedern
.Enter_First_Federn	*--*>Enter 1
		move.l	a4,a5
		lea	Feder_1_1,a0
		jsr	Get_Entry_Feder
		tst	d0
		bmi.s	.NoEntryFound
		jsr	Enter_Feder
		move.l	a5,a4
		*--*>Enter 2
		lea	Feder_1_2,a0
		jsr	Get_Entry_Feder
		tst	d0
		bmi.s	.NoEntryFound
		jsr	Enter_Feder
		move.l	a5,a4
		*--*>Enter 3
		lea	Feder_1_3,a0
		jsr	Get_Entry_Feder
		tst	d0
		bmi.s	.NoEntryFound
		jsr	Enter_Feder
		move.l	a5,a4
		*--*>Enter 4
		lea	Feder_1_4,a0
		jsr	Get_Entry_Feder
		tst	d0
		bmi.s	.NoEntryFound
		jsr	Enter_Feder
.NoEntryFound	*--*>kein Eintrag mehr fei
		move.l	a5,a4
		movem.l	(sp)+,a0-a6/d0-d7
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Enter_SecondFedern	*--*>Andere Federn Init
		*--*>Enter 1
		move.l	a4,a5
		lea	Feder_2_1,a0
		jsr	Get_Entry_Feder
		tst	d0
		bmi.s	.NoEntryFound1
		jsr	Enter_Feder
		move.l	a5,a4
		*--*>Enter 2
		lea	Feder_2_2,a0
		jsr	Get_Entry_Feder
		tst	d0
		bmi.s	.NoEntryFound1
		jsr	Enter_Feder
		move.l	a5,a4
		*--*>Enter 3
		lea	Feder_2_3,a0
		jsr	Get_Entry_Feder
		tst	d0
		bmi.s	.NoEntryFound1
		jsr	Enter_Feder
		move.l	a5,a4
		*--*>Enter 4
		lea	Feder_2_4,a0
		jsr	Get_Entry_Feder
		tst	d0
		bmi.s	.NoEntryFound1
		jsr	Enter_Feder
.NoEntryFound1	*--*>kein Eintrag mehr fei
		move.l	a5,a4
		movem.l	(sp)+,a0-a6/d0-d7
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Get_Entry_Feder	*--*>Search_Entry for Feder
		move	#NH_HUHN_FEDER,d0
		move	Bob_X_Position(a4),d1
		add	(a0)+,d1
		sub	#16,d1
		move	Bob_Y_Position(a4),d2
		add	(a0)+,d2
		lea	Area_Enter_Vector(a6),a1
		jsr	Search_Bob_Entry
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Get_Entry_Bush	*--*>Search_Entry for Feder
		move	#NH_HUHN_BLATT,d0
		move	Bob_X_Position(a4),d1
		add	(a0)+,d1
		move	Bob_Y_Position(a4),d2
		add	(a0)+,d2
		lea	Area_Enter_Vector(a6),a1
		jsr	Search_Bob_Entry
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Enter_Feder		*--*>Enter Values of Feder
		move.l	(a0)+,Bob_Next_Anim(a4)
		move	(a0)+,Feder_TIME(a4)
		move.b	(a0)+,Feder_X_Dir(a4)
		move.b	(a0)+,d0
		move	(a0)+,Feder_X_Speed(a4)
		move	(a0)+,Feder_X_Acce(a4)
		move	(a0)+,Feder_Y_Speed(a4)
		move	(a0)+,Feder_Y_Acce(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Feder_1_1		*--*>Feder 1
		dc.w	-4+8,8
		dc.l	Feder_L_Anm
		dc.w	150
		dc.b	-1,0
		dc.w	$fd00,$0040,$fd00,$0040
Feder_1_2		*--*>Feder 2
		dc.w	6-8,2
		dc.l	Feder_L_Anm
		dc.w	150
		dc.b	-1,0
		dc.w	$fe00,$0040,$fb00,$0040
Feder_1_3		*--*>Feder 3
		dc.w	26-8,2
		dc.l	Feder_R_Anm
		dc.w	150
		dc.b	+1,0
		dc.w	$0240,0-$0040,$fb80,$0040
Feder_1_4		*--*>Feder 4
		dc.w	32+4-8,8
		dc.l	Feder_R_Anm
		dc.w	150
		dc.b	1,0
		dc.w	$0280,0-$0040,$fc80,$0040
Feder_2_1		*--*>Feder 1
		dc.w	32+4-8,8
		dc.l	Feder_R_Anm
		dc.w	150
		dc.b	1,0
		dc.w	$0300,0-$0040,$fc00,$0040
Feder_2_2		*--*>Feder 2
		dc.w	6-8,2
		dc.l	Feder_L_Anm
		dc.w	150
		dc.b	-1,0
		dc.w	$fd00,$0040,$fb00,$0040
Feder_2_3		*--*>Feder 3
		dc.w	26-8,2
		dc.l	Feder_R_Anm
		dc.w	150
		dc.b	+1,0
		dc.w	$0280,0-$0040,$fa40,$0040
Feder_2_4		*--*>Feder 4
		dc.w	-4+8,8
		dc.l	Feder_L_Anm
		dc.w	150
		dc.b	-1,0
		dc.w	$fc80,$0040,$fd00,$0040

**************************************************************************************
*-------------------------------------------------------------------------------------
*------------------	HUHN ALS BUSCH VERKLEIDET
*-------------------------------------------------------------------------------------
**************************************************************************************
Huhn_Bush_Anm:	dc.w	0
		dc.l	NBush_Obj0,0
		dc.w	ENTRY_END
		dc.l	Huhn_Bush_Anm
*-------------------------------------------------------------------------------------
Bush_Wait_Time	=Bob_Special_1	;B
Bush_Which_Action	=Bob_Special_1+1	;B
Bush_X_Dir		=Bob_Special_2	;B
Bush_X_Range	=Bob_Special_2+1	;B
Bush_Look_Vals	=Bob_Special_3	;B
Bush_Eyes_X_Offs	=Bob_Special_3+1	;B
Bush_Eyes_Closed	=Bob_Special_4	;B
Bush_Body_Anim_Base	=Bob_Plane_Order	;LW
Bush_Eyes_Anim_Base	=Bob_Koords_Save1	;LW
Bush_Body_Table_Offs	=Bob_Koords_Save2	;W
Bush_Eyes_Table_Offs	=Bob_Koords_Save2+2	;W
*-------------------------------------------------------------------------------------
BUSH_NO_ACTION	=0
BUSH_LOOK		=1
BUSH_STAND_UP	=2
BUSH_WALK		=3
BUSH_SIT_DOWN	=4
*-------------------------------------------------------------------------------------
Init_Huhn_Bush:	*---*>Init all Bobs for Bush and enter Values
		and	#$fff0,Bob_Y_Position(a4)
		add	#32-24,Bob_Y_Position(a4)
		move.l	#Huhn_Bush_Master,Bob_Routine(a4)
		move.b	#1,Bush_Eyes_Closed(a4)
		move.l	#Bush_Eyes_R_Anm,Bush_Eyes_Anim_Base(a4)
		move.l	#Bush_Body_SUR_Anm,Bush_Body_Anim_Base(a4)
		move	#Bush_SU_Table-BASE_ANIMS_EB,Bush_Body_Table_Offs(a4)
		rts
*---------------------------------------------------------------------------
Show_Bush_System:	*--*>Anzeigen von Bush,Bein,Augen
		tst.b	Bush_Eyes_Closed(a4)
		bne.s	.Dislay_Bush

		*--*> Werte Holen, die fr Darstellung bentigt werden
		move	Bob_X_Position(a4),d0
		move.b	Bush_Eyes_X_Offs(a4),d1
		ext.w	d1
		add	d1,d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		add	#10,d1

		lea	BASE_ANIMS_EB,a0
		add	Bush_Eyes_Table_Offs(a4),a0
		moveq	#0,d4
		move.b	(a0),d4
		move.l	Bush_Eyes_Anim_Base(a4),a1
		mulu	#BUSH_A_SIZE,d4
		add	d4,a1
		move	Bob_A_Table_Flip(a1),d2
		move.l	Bob_A_Table_Sigel(a1),a0
		add	Bob_A_Table_X_Off(a1),d0
		add	Bob_A_Table_Y_Off(a1),d1
		movem.l	d2/a0,-(sp)
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayEyes
		movem.l	(sp)+,d2/a0
		move.w	#Nature_EnemyVRam/32,d3
		jsr	Add_Sigel
		bra.s	.Dislay_Bush

.NoDisplayEyes	movem.l	(sp)+,d2/a0

.Dislay_Bush	*--*>Bush anzeigen
		jsr	Show_NaturObject

		*--*>Krper anzeigen
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	#26-12,d1

		lea	BASE_ANIMS_EB,a0
		add	Bush_Body_Table_Offs(a4),a0
		moveq	#0,d4
		move.b	(a0),d4
		move.l	Bush_Body_Anim_Base(a4),a1
		mulu	#BUSH_A_SIZE,d4
		add	d4,a1
		move.w	Bob_A_Table_Flip(a1),d2
		move.l	Bob_A_Table_Sigel(a1),a0
		add	Bob_A_Table_X_Off(a1),d0
		move	Bob_A_Table_Y_Off(a1),d3
		neg	d3
		move	d3,Bob_Y_Offset(a4)
		movem.l	d2/a0,-(sp)
		jsr	Check_Object_Borders_Jan
		beq.s	.NoDisplayBody
		movem.l	(sp)+,d2/a0
		move.w	#Nature_EnemyVRam/32,d3
		jsr	Add_Sigel
		rts
.NoDisplayBody	movem.l	(sp)+,d2/a0
		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
Huhn_Bush_Master	*---*>Standart Routines for Bush Master
		tst	NH_Huhn_Hit(a4)
		bmi	END_BUSH_HUHN
.NoOut_Others	*--*>Make Bush
		cmp.b	#BUSH_NO_ACTION,Bush_Which_Action(a4)
		bne.s	.Actions
		jsr	.Test_Action_Routs
		bra.s	.NoActions

.Actions		*--*>Call Actions
		cmp.b	#BUSH_LOOK,Bush_Which_Action(a4)
		bne.s	.NoLookActions
		jsr	.Look_Action
		bra.s	.NoActions
.NoLookActions	cmp.b	#BUSH_STAND_UP,Bush_Which_Action(a4)
		bne.s	.NoStandUp
		jsr	.Stand_Up_Action
		bra.s	.NoActions
.NoStandUp		cmp.b	#BUSH_WALK,Bush_Which_Action(a4)
		bne.s	.NoWalk
		jsr	.Walk_Action
		bra.s	.NoActions
.NoWalk		cmp.b	#BUSH_SIT_DOWN,Bush_Which_Action(a4)
		bne.s	.NoSitDOwn
		jsr	.Sit_Down_Action
		bra.s	.NoActions
		nop
.NoSitDOwn
.NoActions		*--*>Other Routs
		jsr	Tst_TIMET_Hit_Bush
		jsr	Test_TEMET_Hit
		jsr	Show_Bush_System
		jsr	Test_Bob_Out
		rts
*---------------------------------------------------------------------------
.Test_Action_Routs	*---*>Test Where TIMET is and which Action to do
		*--*>Test if Action is allowed
		tst.b	Bush_Wait_Time(a4)
		beq.s	.Action_Allowed
		subq.b	#1,Bush_Wait_Time(a4)
		rts
.Action_Allowed	*--*>Init look_Action
		move.b	#BUSH_LOOK,Bush_Which_Action(a4)
		jsr	Get_Zuffi_d0
		and	#3,d0
		bne.s	.OkNotZero
		move.b	#1,d0
.OkNotZero		neg.b	d0		;negieren als flag fr Init Look
		move.b	d0,Bush_Look_Vals(a4)
		rts
*-------------------------------------------------------------------------------------
.Look_Action	*--*>Test if Look should be inited or not
		tst.b	Bush_Wait_Time(a4)
		beq.s	.AAction_Allowed
		subq.b	#1,Bush_Wait_Time(a4)
		rts
.AAction_Allowed	tst.b	Bush_Look_Vals(a4)
		bpl.s	.NoInit
		*--*>Init Look
		neg.b	Bush_Look_Vals(a4)

		lea	.Bush_Look_Table,a0
		jsr	Get_Zuffi_d0
		and	#7,d0
		move	d0,d1
		add	d0,d0	****!!!!
		add	d0,a0
		move	(a0),Bush_Eyes_Table_Offs(a4)
		and	#1,d1
		tst	d1
		beq.s	.Init_Left
.Init_Right		move.l	#Bush_Eyes_R_Anm,Bush_Eyes_Anim_Base(a4)
		move.b	#12,Bush_Eyes_X_Offs(a4)
		move.b	#1,Bush_X_Dir(a4)
		rts
.Init_Left		move.l	#Bush_Eyes_L_Anm,Bush_Eyes_Anim_Base(a4)
		clr.b	Bush_Eyes_X_Offs(a4)
		move.b	#-1,Bush_X_Dir(a4)
		rts
.NoInit		*--*>Continue Look
		tst.b	Bush_Look_Vals(a4)
		beq.s	.OkLook
		jsr	Test_TEMET_far
		move.b	Bush_X_Dir(a4),d2
		ext.w	d2
		cmp	d1,d2
		beq.s	.OkLook
		tst	d0
		beq.s	.OkLook
		cmp	#64,d0
		bhs.s	.OkLook
		*--*>Init Close Eyes
		clr.b	Bush_Look_Vals(a4)
		move	#Bush_Look_Close-BASE_ANIMS_EB,Bush_Eyes_Table_Offs(a4)
.OkLook		clr.b	Bush_Eyes_Closed(a4)

		lea	BASE_ANIMS_EB,a0
		addq	#1,Bush_Eyes_Table_Offs(a4)
		add	Bush_Eyes_Table_Offs(a4),a0
		moveq	#0,d4
		move.b	1(a0),d4
		cmp.b	#ENDLOOK,d4
		beq.s	.LookReady
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.LookReady		*--*>Init Walk ???
		jsr	Test_TEMET_far
		move.b	Bush_X_Dir(a4),d2
		ext.w	d2
		cmp	d1,d2
		beq.s	.ENTERWALK
.NO_ENTERWALK	*--*>TEST IF LOOK SHOULD BE INITIALISED AGAIN
		subq.b	#1,Bush_Look_Vals(a4)
		beq.s	.ENDEACTION
		bmi.s	.ENDEACTION
		*--*>WAIT SHORT AND INIT LOOK AGAIN
		move.b	#20,Bush_Wait_Time(a4)
		neg.b	Bush_Look_Vals(a4)
		move.b	#1,Bush_Eyes_Closed(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.ENDEACTION		*--*>WAIT AND DO NOTHING
		jsr	Test_TEMET_far
		tst	d0
		beq.s	.ENTERWALK
		cmp	#128,d0
		bhs.s	.ENTERWALK

		move.b	#BUSH_NO_ACTION,Bush_Which_Action(a4)
		jsr	Get_Zuffi_d0
		and	#3,d0
		addq	#1,d0
		mulu	#25,d0
		move.b	d0,Bush_Wait_Time(a4)
		move.b	#1,Bush_Eyes_Closed(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.ENTERWALK		*--*>ENTER STAND UP ROUTS
		move.b	#BUSH_STAND_UP,Bush_Which_Action(a4)
		move	#Bush_SU_Table-BASE_ANIMS_EB,Bush_Body_Table_Offs(a4)
		move	#Bush_Look_Walk-BASE_ANIMS_EB,Bush_Eyes_Table_Offs(a4)
		tst.b	Bush_X_Dir(a4)
		bpl.s	.InitRightWalk
.InitLeftWalk	move.l	#Bush_Body_SUL_Anm,Bush_Body_Anim_Base(a4)
		rts
.InitRightWalk	move.l	#Bush_Body_SUR_Anm,Bush_Body_Anim_Base(a4)
		rts

*---------------------------------------------------------------------------
.Stand_Up_Action	*--*>Make Stand Up
		jsr	.Make_Eyes
		jsr	.Make_Body
		*--*>test if Real Walk should be Inited
		tst	d0
		bmi.s	.InitWlak
		rts
.InitWlak		*--*>Init Bush Walk
		jsr	Get_Zuffi_d0
		cmp	#4,d0
		bls.s	.OKsize
		moveq	#4,d0
.OKsize		addq	#1,d0
		lsl	#4,d0
		move.b	d0,Bush_X_Range(a4)
		move.b	#BUSH_WALK,Bush_Which_Action(a4)
		move	#Bush_Walk_Table-BASE_ANIMS_EB,Bush_Body_Table_Offs(a4)
		move	#Bush_Look_Walk-BASE_ANIMS_EB,Bush_Eyes_Table_Offs(a4)
		tst.b	Bush_X_Dir(a4)
		bpl.s	.InitRight_Walk
.InitLeft_Walk	move.l	#Bush_Body_WL_Anm,Bush_Body_Anim_Base(a4)
		rts
.InitRight_Walk	move.l	#Bush_Body_WR_Anm,Bush_Body_Anim_Base(a4)
		rts
*---------------------------------------------------------------------------
.Walk_Action	*--*>Make Walk
		jsr	.Make_Eyes
.Make_Bush_Again	jsr	.Make_Body
		*--*>test if Wait
		tst	d0
		bpl.s	.No_Anf_Init
		move.w	#Bush_Walk_Table-BASE_ANIMS_EB,Bush_Body_Table_Offs(a4)
		bra.s	.Make_Bush_Again
.No_Anf_Init	jsr	.Test_X_Return
		jsr	.Move_X
		rts
*---------------------------------------------------------------------------
.Sit_Down_Action	*--*>Make_Sit Down
		jsr	.Make_Eyes
		jsr	.Make_Body
		*--*>test if Wait
		tst	d0
		bmi.s	.Init_Wait
		rts
.Init_Wait		*--*>Init Bush Walk
		move.b	#BUSH_NO_ACTION,Bush_Which_Action(a4)
		jsr	Get_Zuffi_d0
		and	#3,d0
		addq	#1,d0
		mulu	#25,d0
		move.b	d0,Bush_Wait_Time(a4)
		move.b	#1,Bush_Eyes_Closed(a4)
		rts
*---------------------------------------------------------------------------
.Test_X_Return	*--*>Test auf Abgrund
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		tst.b	Bush_X_Dir(a4)
		bmi.s	.okydoky
		add	#32,d0
.okydoky		add	#32+4,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		*--*>Boden ?
		cmp.b	#SCHRAEG,Block_Schraeg_Flag(a1)
		beq	.Dreh_Um
		cmp.b	#swand,Block_Through(a1)
		beq	.Dreh_Um
		cmp.b	#boden,Block_Through(a1)
		bne	.Dreh_Um
		*--*>Test auf X Kollision
		tst.b	Bush_X_Dir(a4)
		bpl.s	.TestRightXKoll
.TestLeftXKoll	*--*>Test Left Side
		move	Bob_X_Position(a4),d0
		subq	#4,d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		add	#16,d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		bne.s	.Dreh_Um
		rts
.TestRightXKoll	*--*>Test Right Side
		move	Bob_X_Position(a4),d0
		addq	#4,d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		add	#32,d0
		add	#16,d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		bne.s	.Dreh_Um
		rts
.Dreh_Um		*--*>Dreh Bush System Um
		neg.b	Bush_X_Dir(a4)
		bpl.s	.Init_Right_Walk_B
.Init_Left_Walk_B	*--*>Links initialisieren
		move.l	#Bush_Body_WL_Anm,Bush_Body_Anim_Base(a4)
		move.l	#Bush_Eyes_L_Anm,Bush_Eyes_Anim_Base(a4)
		move	#Bush_Look_Walk-BASE_ANIMS_EB,Bush_Eyes_Table_Offs(a4)
		clr.b	Bush_Eyes_X_Offs(a4)
		rts
.Init_Right_Walk_B	*--*>Rechts initialisieren
		move.l	#Bush_Body_WR_Anm,Bush_Body_Anim_Base(a4)
		move.l	#Bush_Eyes_R_Anm,Bush_Eyes_Anim_Base(a4)
		move	#Bush_Look_Walk-BASE_ANIMS_EB,Bush_Eyes_Table_Offs(a4)
		move.b	#12,Bush_Eyes_X_Offs(a4)
		rts
*---------------------------------------------------------------------------
.Move_X		*--*>Move Bush System
		tst.b	Bush_X_Dir(a4)
		bpl.s	.Walk_Right
.Walk_Left		*--*>nach links bewegen
		subq	#1,Bob_X_Position(a4)
		subq.b	#1,Bush_X_Range(a4)
		beq.s	.Sit_Down_Norm
		bra.s	.Test_Temet
.Walk_Right		*--*>nach rechts bewegen
		addq	#1,Bob_X_Position(a4)
		subq.b	#1,Bush_X_Range(a4)
		beq.s	.Sit_Down
.Test_Temet		*--*>Test if Sit Down
		move	Bob_X_Position(a4),d0
		and	#15,d0
		bne.s	.NO_SIT_DOWN
		jsr	Test_TEMET_far
		move.b	Bush_X_Dir(a4),d2
		ext.w	d2
		cmp	d1,d2
		beq.s	.NO_SIT_DOWN
		tst	d0
		beq.s	.NO_SIT_DOWN
		cmp	#96,d0
		bhs.s	.NO_SIT_DOWN
		bra.s	.Sit_Down
.NO_SIT_DOWN	rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Sit_Down_Norm	*--*>No fear Sit down
		move.w	#Bush_Look_Close-BASE_ANIMS_EB,Bush_Eyes_Table_Offs(a4)
		bra.s	.Cont_Sit_Down
.Sit_Down		*--*>Init Sit Down
		move.w	#Bush_Look_Close_F-BASE_ANIMS_EB,Bush_Eyes_Table_Offs(a4)
.Cont_Sit_Down	move.b	#BUSH_SIT_DOWN,Bush_Which_Action(a4)
		move.w	#Bush_SD_Table-BASE_ANIMS_EB,Bush_Body_Table_Offs(a4)
		tst.b	Bush_X_Dir(a4)
		bpl.s	.InitRightSitDown
.InitLeftSitDown	move.l	#Bush_Body_SUL_Anm,Bush_Body_Anim_Base(a4)
		rts
.InitRightSitDown	move.l	#Bush_Body_SUR_Anm,Bush_Body_Anim_Base(a4)
		rts
*---------------------------------------------------------------------------
.Make_Body		*--*>Anim Body
		moveq	#-1,d0
		lea	BASE_ANIMS_EB,a0
		add	Bush_Body_Table_Offs(a4),a0
		cmp.b	#ENDSTANDUP,1(a0)
		beq.s	.NoAddBody
		addq	#1,Bush_Body_Table_Offs(a4)
		moveq	#0,d0
.NoAddBody		rts
*---------------------------------------------------------------------------
.Make_Eyes		*--*>Anim  Eyes
		lea	BASE_ANIMS_EB,a0
		add	Bush_Eyes_Table_Offs(a4),a0
		cmp.b	#ENDLOOK,1(a0)
		beq.s	.NoAddEyes
		addq	#1,Bush_Eyes_Table_Offs(a4)
.NoAddEyes		rts
*---------------------------------------------------------------------------
BUSH_A_SIZE	=10
ENDLOOK	=-1
ENDSTANDUP	=-1
ENDSITDOWN	=-1
ENDWALK	=-1
.Bush_Look_Table	dc.w	Bush_Look_1-BASE_ANIMS_EB,Bush_Look_2-BASE_ANIMS_EB,Bush_Look_1-BASE_ANIMS_EB,Bush_Look_2-BASE_ANIMS_EB
		dc.w	Bush_Look_1-BASE_ANIMS_EB,Bush_Look_2-BASE_ANIMS_EB,Bush_Look_1-BASE_ANIMS_EB,Bush_Look_2-BASE_ANIMS_EB
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BASE_ANIMS_EB
Bush_Look_1		*--*>Number OF Anim
		dc.b	0,0,0,0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2
		dc.b	3,3,3,3,3,4,4,4,4,3,3,3,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
		dc.b	5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
		dc.b	6,6,6,6,5,5,5,5,2,2,2,2,2,2,2,2,1,1,1,1,0,0,0
		dc.b	ENDLOOK
		dc.b	25
		even
Bush_Look_2	*--*>Number OF Anim
		dc.b	0,0,0,0,0,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
		dc.b	3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,2,2,2,2,2
		dc.b	2,2,2,2,2,3,3,3,4,4,4,4,4,4,4,3,3,3,3,3,2,2,2,2,2
		dc.b	1,1,1,1,1,0,0,0,0,0
		dc.b	ENDLOOK
		even
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bush_Look_Close	*--*>Close Eyes
		dc.b	2,2,2,1,1,0,0
		dc.b	ENDLOOK
		even
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bush_Look_Close_F	*--*>Close Eyes
		dc.b	4,4,4,4,4,3,3,3,2,2,1,1,0
		dc.b	ENDLOOK
		even
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bush_Look_Walk	*--*>Open Eyes for Walk
		dc.b	0,0,0,0,0,1,1,1,1,1,2
		dc.b	ENDLOOK
		even
*---------------------------------------------------------------------------
Bush_SU_Table	*--*>Huhn Stand Up
		dc.b	0,1,2,3,4
		dc.b	5,6,7
		dc.b	ENDSTANDUP
		even
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bush_SD_Table	*--*>Huhn Stand Up
		dc.b	7,6,5,4,3,2,1,0,0,0,0,0,0
		dc.b	ENDSITDOWN
		even
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bush_Walk_Table	*--*>Bush_Walk
		dc.b	0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6
		dc.b	7,7,7,8,8,8,9,9,9,10,10,10,11,11,11,12,12,12,13,13,13
		dc.b	ENDWALK
		even
*---------------------------------------------------------------------------
*---------------------------------------------------------------------------
Test_TEMET_far	*---*>Test How far is TIMEt
		*--	d0 = 0 wenn Timet nicht auf Look Seite
		*--	d0 <>0 = Timets Entfernung von Bush
		*--	d1 = TEMET ANIM DIR
		*--Get Values
		lea	(a6),a2
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		*--Sub Bob Values
		sub	Bob_X_Position(a4),d0
		sub	Bob_Y_Position(a4),d1
		*--Test if Bob-YDir is down
		tst	d1
		bpl.s	.Ok_Y_pos
		neg	d1
.Ok_Y_pos		cmp	#64,d1
		bhs.s	.No_Temet_there
		move	TEMET_Anim_Dir(a2),d1
		tst	d0
		bpl.s	.Huhn_Left
.Huhn_Right	*--Bush is Right
		tst.b	Bush_X_Dir(a4)
		bpl.s	.No_Temet_there
		neg	d0
		rts
.Huhn_Left	*--Bush is Left
		tst.b	Bush_X_Dir(a4)
		bmi.s	.No_Temet_there
		rts

.No_Temet_there	*--*>Timet nicht zu sehen
		move	TEMET_Anim_Dir(a2),d1
		moveq	#0,d0
		rts

*---------------------------------------------------------------------------
*------------------	TEST BUSH DEAD
Tst_TIMET_Hit_Bush	*---*>Test Kollision with TEMET
		lea	(a6),a2
		jsr	KollTopBobTest
		tst	d7
		bmi	.NoKoll
		*--*>Kollision !
		lea	(a6),a2
		jsr	Make_Bump
		*--*>Out Body and Eyes
		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_X
		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_Y
		jsr	ENTER_Bltter
		IFEQ	SOUNDFX
		moveq	#2,d0
		jsr	TFMX+16
		ENDC
		*--*>Normales Huhn eintragen
		move	#SN_HUHN,d0
.Other_Vals		move	Bob_X_Position(a4),d1
		move	Bob_Y_Position(a4),d2
		add	#11,d2
		sub	#48-25,d2
		move.l	Bob_Entry_Adress(a4),a1
		jsr	ENTER_BOB
.NoKoll		rts
*---------------------------------------------------------------------------
*-------------	EI HIT BUSH
END_BUSH_HUHN	*--*>Alles Austragen und Bltter und Federn eintragen
		*--Effect Bobs
		jsr	ENTER_SMOKE_X
		jsr	ENTER_SMOKE_Y
		jsr	ENTER_Bltter
		jsr	ENTER_FEDERN
		jsr	Out_Bob_Damage
		IFEQ	SOUNDFX
		moveq	#3,d0
		jsr	TFMX+16
		ENDC
		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
Bush_Eyes_R_Anm:	dc.w	1
		dc.l	NBush_Obj1,4
		dc.w	1
		dc.l	NBush_Obj2,3
		dc.w	1
		dc.l	NBush_Obj3,2
		dc.w	1
		dc.l	NBush_Obj4,1
		dc.w	1
		dc.l	NBush_Obj5,0
		dc.w	1
		dc.l	NBush_Obj6,2
		dc.w	1
		dc.l	NBush_Obj7,1
		dc.w	1
		dc.l	NBush_Obj8,0
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Bush_Eyes_L_Anm:	dc.w	0
		dc.l	NBush_Obj1,4
		dc.w	0
		dc.l	NBush_Obj2,3
		dc.w	0
		dc.l	NBush_Obj3,2
		dc.w	0
		dc.l	NBush_Obj4,1
		dc.w	0
		dc.l	NBush_Obj5,0
		dc.w	0
		dc.l	NBush_Obj6,2
		dc.w	0
		dc.l	NBush_Obj7,1
		dc.w	0
		dc.l	NBush_Obj8,0


Bush_Body_SUL_Anm:	dc.w	1
		dc.l	NFeet_Obj2,1
		dc.w	1
		dc.l	NFeet_Obj2,2
		dc.w	1
		dc.l	NFeet_Obj2,3
		dc.w	1
		dc.l	NFeet_Obj2,4
		dc.w	1
		dc.l	NFeet_Obj2,5
		dc.w	1
		dc.l	NFeet_Obj2,6
		dc.w	1
		dc.l	NFeet_Obj2,7
		dc.w	1
		dc.l	NFeet_Obj2,8

Bush_Body_SUR_Anm:	dc.w	0
		dc.l	NFeet_Obj2,1
		dc.w	0
		dc.l	NFeet_Obj2,2
		dc.w	0
		dc.l	NFeet_Obj2,3
		dc.w	0
		dc.l	NFeet_Obj2,4
		dc.w	0
		dc.l	NFeet_Obj2,5
		dc.w	0
		dc.l	NFeet_Obj2,6
		dc.w	0
		dc.l	NFeet_Obj2,7
		dc.w	0
		dc.l	NFeet_Obj2,8

Bush_Body_WL_Anm:	dc.w	1
		dc.l	NFeet_Obj0,8
		dc.w	1
		dc.l	NFeet_Obj1,8
		dc.w	1
		dc.l	NFeet_Obj2,8
		dc.w	1
		dc.l	NFeet_Obj3,8
		dc.w	1
		dc.l	NFeet_Obj4,8
		dc.w	1
		dc.l	NFeet_Obj5,8
		dc.w	1
		dc.l	NFeet_Obj6,8
		dc.w	1
		dc.l	NFeet_Obj7,8
		dc.w	1
		dc.l	NFeet_Obj8,8
		dc.w	1
		dc.l	NFeet_Obj9,8
		dc.w	1
		dc.l	NFeet_Obj10,8
		dc.w	1
		dc.l	NFeet_Obj11,8
		dc.w	1
		dc.l	NFeet_Obj12,8
		dc.w	1
		dc.l	NFeet_Obj13,8

Bush_Body_WR_Anm:	dc.w	0
		dc.l	NFeet_Obj0,8
		dc.w	0
		dc.l	NFeet_Obj1,8
		dc.w	0
		dc.l	NFeet_Obj2,8
		dc.w	0
		dc.l	NFeet_Obj3,8
		dc.w	0
		dc.l	NFeet_Obj4,8
		dc.w	0
		dc.l	NFeet_Obj5,8
		dc.w	0
		dc.l	NFeet_Obj6,8
		dc.w	0
		dc.l	NFeet_Obj7,8
		dc.w	0
		dc.l	NFeet_Obj8,8
		dc.w	0
		dc.l	NFeet_Obj9,8
		dc.w	0
		dc.l	NFeet_Obj10,8
		dc.w	0
		dc.l	NFeet_Obj11,8
		dc.w	0
		dc.l	NFeet_Obj12,8
		dc.w	0
		dc.l	NFeet_Obj13,8


**************************************************************************************
	ENDC